VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 464|回复: 16

关于URLDownloadToFile函数

[复制链接]
73_avatar_middle
最佳答案
0 
在线会员 发表于 2021-1-31 11:22:51 | 显示全部楼层 |阅读模式
我用vscode编译这个函数出现错误提示,有没有大佬帮忙看一下。尝试过配置环境变量和添加include路径都不对
#include <windows.h>
#include <iostream>
#include <tchar.h>
#include "Urlmon.h"
#pragma comment (Lib,"Urlmon.Lib")
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, INT nShowCmd)
{
    HRESULT hResult =URLDownloadToFile(NULL,_T("https://s.cctry.com/images/eagle2.png"),_T("D:\\eg.png"),0,NULL);
    if(hResult==S_OK)
    {
        MessageBox(NULL,_T("下载成功"),_T("Tip"),MB_OK);

    }else
    {
        MessageBox(NULL,_T("下载失败"),_T("Tip"),MB_OK);
    }
    return 0;
}




上一篇:httpPOST请求import报错
下一篇:c++零基础new delete 使用 27课作业
31_avatar_middle
最佳答案
50 
在线会员 发表于 2021-1-31 16:40:54 | 显示全部楼层
本帖最后由 cpp2019 于 2021-1-31 16:43 编辑

#pragma comment (lib,"Urlmon.Lib") //其中的lib是小写,不是Lib!


  1. #include <iostream>
  2. #include <tchar.h>
  3. #include "Urlmon.h"
  4. #pragma comment (lib,"Urlmon.Lib")

  5. int main()
  6. {
  7.         HRESULT hResult =URLDownloadToFile(NULL,_T("https://s.cctry.com/images/eagle2.png"),_T("Z:\\eg.png"),0,NULL);
  8.     if(hResult==S_OK)
  9.     {
  10.                 std::cout << "成功!\n";
  11.     }else
  12.     {
  13.                 std::cout << "失败!\n";
  14.     }
  15.     return 0;
  16. }
复制代码


关于URLDownloadToFile函数
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-31 11:24:32 | 显示全部楼层
额忘记写了提示的错误是undefined reference to `URLDownloadToFileA' 更改为W的版本提示W未定义啥情况
04_avatar_middle
最佳答案
11 
online_vip 发表于 2021-1-31 12:29:44 | 显示全部楼层
#include "Urlmon.h"改成#include <Urlmon.h>
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-31 15:04:05 | 显示全部楼层
xiao14116 发表于 2021-1-31 12:29
#include "Urlmon.h"改成#include

不行同样的问题
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-31 17:00:03 | 显示全部楼层
cpp2019 发表于 2021-1-31 16:40
#pragma comment (lib,"Urlmon.Lib") //其中的lib是小写,不是Lib!

这个大小写我都试过包括头文件和后面的都不行
31_avatar_middle
最佳答案
50 
在线会员 发表于 2021-1-31 17:09:51 | 显示全部楼层
本帖最后由 cpp2019 于 2021-1-31 17:11 编辑
yangyang521 发表于 2021-1-31 17:00
这个大小写我都试过包括头文件和后面的都不行


你好好看看你贴的代码,你再看看我的,跟你的有多少区别,亲测通过!

关于URLDownloadToFile函数
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-31 17:16:48 | 显示全部楼层
你看这个我试过的
test.png
31_avatar_middle
最佳答案
50 
在线会员 发表于 2021-1-31 17:20:01 | 显示全部楼层
urlmon.h 这是自带的库,可以这么写 #include <urlmon.h>,
在Windows中文件名是不区分大小写的,但是C++语法是区分大小写的!
31_avatar_middle
最佳答案
50 
在线会员 发表于 2021-1-31 17:48:09 | 显示全部楼层
本帖最后由 cpp2019 于 2021-1-31 17:52 编辑
yangyang521 发表于 2021-1-31 17:16
你看这个我试过的


你这个一看就是用VSCODE+GCC,
你得确定GCC库里有没有urlmon.h这个文件,
要是有这个文件,还得确定一下他有没有URLDownloadToFileA这个函数的定义,
或者说它有没有用宏来控制字符集,字符集的不同编译时的函数是不同的,
你可以试试URLDownloadToFileA、URLDownloadToFileW。

解决不了的话,最好安装完整的Windows SDK。
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-31 20:38:06 | 显示全部楼层
cpp2019 发表于 2021-1-31 17:48
你这个一看就是用VSCODE+GCC,
你得确定GCC库里有没有urlmon.h这个文件,
要是有这个文件,还得确定 ...

确定我刚安装了一遍vss直接过了一样的代码,我试过了在c_cpp里包含路径,也找到了urlmon,有这些函数声明但是找定义找不到不知道什么情况,不会只提供了头文件然后因为函数安全原因不提供定义吧
99_avatar_middle
最佳答案
1 
online_vip 发表于 2021-1-31 21:03:21 | 显示全部楼层
yangyang521 发表于 2021-1-31 20:38
确定我刚安装了一遍vss直接过了一样的代码,我试过了在c_cpp里包含路径,也找到了urlmon,有这些函数声明 ...

直接换vs不香嘛 为啥费用vscode  支持库各种不兼容问题  你是打算学习语言还是打算学习处理各种编译器疑难杂症关于URLDownloadToFile函数
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-31 23:04:39 | 显示全部楼层
风度猫 发表于 2021-1-31 21:03
直接换vs不香嘛 为啥费用vscode  支持库各种不兼容问题  你是打算学习语言还是打算学习处理各种编译器疑 ...

因为后来写python什么的的确vscode轻巧些,vss的确有点大了。。。。。。。。。。
99_avatar_middle
最佳答案
1 
online_vip 发表于 2021-2-1 08:07:32 | 显示全部楼层
yangyang521 发表于 2021-1-31 23:04
因为后来写python什么的的确vscode轻巧些,vss的确有点大了。。。。。。。。。。

我开始一个想法,中间PHP一直在用还想放弃学C#和C+一个编译器  后来放弃了,电脑又不是天天换软件大小啥关系,用的顺手写代码写的溜才是关键
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-2-1 09:59:09 | 显示全部楼层
风度猫 发表于 2021-2-1 08:07
我开始一个想法,中间PHP一直在用还想放弃学C#和C+一个编译器  后来放弃了,电脑又不是天天换软件大小啥关 ...

em纯粹因为vscode开启速度啥的比较快而且没有生成其他中间或者乱七八糟的东西
83_avatar_middle
最佳答案
1 
在线会员 发表于 2021-2-1 10:16:42 | 显示全部楼层
yangyang521 发表于 2021-1-31 11:24
额忘记写了提示的错误是undefined reference to `URLDownloadToFileA' 更改为W的版本提示W未定义啥情况

看到A和W,我想到的是字符串问题。。。是不是提示你要使用unicode编码
73_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-2-2 09:50:27 | 显示全部楼层
黯魂夜 发表于 2021-2-1 10:16
看到A和W,我想到的是字符串问题。。。是不是提示你要使用unicode编码

我尝试过直接使用A和W都是这个提示~~~
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-10-27 15:32

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表