首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WINAPI URLDownloadToFileA问题

WINAPI URLDownloadToFileA问题
EN

Stack Overflow用户
提问于 2015-04-25 23:21:21
回答 1查看 780关注 0票数 0

我使用了来自here的Microsoft WINAPI语法。

所以,下面是我的代码

代码语言:javascript
复制
#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编译它时,我得到了这些错误:

代码语言:javascript
复制
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:\\>

我不明白为什么我会得到这些错误。我在这里完全被屏蔽了。

EN

回答 1

Stack Overflow用户

发布于 2015-04-25 23:28:43

尝试:

代码语言:javascript
复制
HRESULT hr = URLDownloadToFileW(
    FALSE,
    L"http://www.dropbox.com/static/images/psychobox.png",
    L"C:\\psych0bOx.png",
    0,
    NULL);

请注意,hrHRESULT类型的变量。当URLDownloadToFileW函数返回时,会为hr分配某种可以检查的状态值。也许你可以发现函数是否被正确下载了。

如果没有hr,编译器会认为您正在重新定义URLDownloadToFileW,因此编译器就会出错。

还要注意,末尾的W指示Unicode函数,因此您需要将项目构建为Unicode。因为它是一个Unicode函数,所以必须传入Unicode字符串--这就是它们在前面加上L的原因--意味着Unicode。

或者,使用URLDownloadToFileAURLDownloadToFile,不要定义Unicode。

我刚刚查找了这个函数(您可以这样做),您需要做更多的工作才能使用此函数。第一件事是提供最后一个参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29867038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档