Ошибка при попытке использовать URLDownloadFileW

Я пытаюсь загрузить zip-файл из ссылки с помощью функции URLDownloadFileW. Часть кода, которую я разработал с помощью этой функции:

UnicodeString URL = "URL.EX";
UnicodeString dir = "C:";
UnicodeString result = URLDownloadToFileW(NULL,URL.c_str(),dir.c_str(),0,NULL);
if (result != "S_OK")
    return;

И я объявил Urlmon.h в заголовке, однако, когда я строю проект, он возвращает меня:

[ilink32 Error] Error: неразрешенные внешние ссылки ‘URLDownloadToFileW’ из C:USERSADMINISTRADORDESKTOPSD MANUTENÇÃOWIN32DEBUGSDSUPER449.OBJ
[ilink32 Error] ошибка: не удается выполнить ссылку

Я не нахожу каких-либо полезных результатов поиска об этом. Кто-нибудь знает, что это значит?




1 ответ

  1. urlmon.h необходим компилятору для компиляции кода. Компилятор создает ссылку на URLDownloadToFileWфункцию, но не заботится о том, где она существует. Это задача компоновщика выяснить.

    urlmon.lib требуется для компоновщика для разрешения ссылки компилятора на URLDownloadToFileWфункцию.

    RAD Studio имеет оба файла, в $(BDS)\include\win32\sdkи $(BDS)\lib\win32\releaseпапки, соответственно.

    Вам нужно сделать оба:

    1. добавьте #include <urlmon.h>инструкцию в код.

    2. ссылка на urlmon.libфайл, путем добавления файла в проект или путем ссылки на него в #pragma comment(lib, "urlmon.lib")инструкции в коде.

    Вы пропускаете Шаг №2, поэтому вы получаете ошибку компоновщика.