尝试使用URLDownloadFileW时出错

时间:2016-12-28 12:47:53

标签: c++ c++builder-xe8

我正在尝试使用URLDownloadFileW函数从链接下载zip文件。我现在用这个函数开发的代码部分是:

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错误]错误:从C:\ USERS \ ADMINISTRADOR \ DESKTOP \SDMANUTENÇÃO\ WIN32 \ DEBUG \ SDSUPER449.OBJ引用未解析的外部'URLDownloadToFileW' [ilink32错误]错误:无法执行链接

我找不到任何有用的搜索结果。有人知道这是什么意思吗?

1 个答案:

答案 0 :(得分:0)

编译器需要

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")语句引用它。

  3. 您错过了第2步,这就是您收到链接器错误的原因。