2016-12-28 2 views
0

Я пытаюсь загрузить zip-файл из ссылки, используя функцию URLDownloadFileW. Часть кода, который я разработал теперь с этой функции:Ошибка при попытке использовать 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] Ошибка: неразрешенный внешний '' URLDownloadToFileW ссылочные из C: \ Users \ Administrador \ DESKTOP \ SD MANUTENÇÃO \ WIN32 \ DEBUG \ SDSUPER449.OBJ
[ilink32 Error] Ошибка: Не удалось выполнить ссылку

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

+1

Вы добавили Urlmon.lib в список ссылок? –

+0

Кроме того, 'URLDownloadToFileW' не возвращает строку, она возвращает' HRESULT', который является числом. Вам нужно отбросить кавычки в свой оператор 'if':' if (result! = S_OK) ' –

+0

Нет, я этого не делал. Нужно ли мне его где-то загружать? Я использую RAD Studio XE8, я предполагал, что он уже существует ... x.x – Domicioli

ответ

0

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

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, поэтому вы получаете ошибку в компоновщика.

+0

Если я использую #pragma, это sintax: "#pragma comment (urlmon.lib)" правильно? – Domicioli

+0

@Domicioli close, это на самом деле '#pragma comment (lib," urlmon.lib ")' –

+0

Просто используется: #pragma comment (lib, C: \ Program Files (x86) \ Embarcadero \ Studio \ 16.0 \ lib \ win32 \ release \ psdk \ urlmon.lib), но ничего не изменилось:/ – Domicioli

Смежные вопросы