我使用了来自here的Microsoft WINAPI语法。
所以,下面是我的代码
#include <windows.h>
#pragma comment(lib, "urlmon.lib")
HRESULT URLDownloadToFileW(
FALSE,
"http://www.dropbox.com/static/images/psychobox.png",
"C:\\psych0bOx.png",
0,
NULL);当我尝试用VS12.0编译它时,我得到了这些错误:
C:\\>cl C:\URLDownloadToFileA.cpp
C:\URLDownloadToFileA.cpp(8) : error C2365: 'URLDownloadToFileA' : redéfinition ; la précédente définition était 'fonction'
C:\Program Files\Windows Kits\8.1\include\um\urlmon.h(4780) : voir la déclaration de 'URLDownloadToFileA'
C:\URLDownloadToFileA.cpp(8) : error C2078: initialiseurs trop nombreux
C:\\>我不明白为什么我会得到这些错误。我在这里完全被屏蔽了。
发布于 2015-04-25 23:28:43
尝试:
HRESULT hr = URLDownloadToFileW(
FALSE,
L"http://www.dropbox.com/static/images/psychobox.png",
L"C:\\psych0bOx.png",
0,
NULL);请注意,hr是HRESULT类型的变量。当URLDownloadToFileW函数返回时,会为hr分配某种可以检查的状态值。也许你可以发现函数是否被正确下载了。
如果没有hr,编译器会认为您正在重新定义URLDownloadToFileW,因此编译器就会出错。
还要注意,末尾的W指示Unicode函数,因此您需要将项目构建为Unicode。因为它是一个Unicode函数,所以必须传入Unicode字符串--这就是它们在前面加上L的原因--意味着Unicode。
或者,使用URLDownloadToFileA或URLDownloadToFile,不要定义Unicode。
我刚刚查找了这个函数(您可以这样做),您需要做更多的工作才能使用此函数。第一件事是提供最后一个参数。
https://stackoverflow.com/questions/29867038
复制相似问题