我应该使用URL下载文件吗? 我正在寻找最简单的方法下载C++(在Windows上)的文件。 URLDownloadToFile听起来很棒,不需要我使用curl或其他我不需要的fat库-这个函数有什么要求?它将在哪个窗口上运行
谢谢 文档存在是有原因的 E:只要看一下文档,它至少需要Internet Explorer 3.0和Windows 95。很少有计算机不符合这些要求 E:这是一个如何使用这个函数的示例。您还需要链接我应该使用URL下载文件吗? 我正在寻找最简单的方法下载C++(在Windows上)的文件。 URLDownloadToFile听起来很棒,不需要我使用curl或其他我不需要的fat库-这个函数有什么要求?它将在哪个窗口上运行,c++,file,download,C++,File,Download,谢谢 文档存在是有原因的 E:只要看一下文档,它至少需要Internet Explorer 3.0和Windows 95。很少有计算机不符合这些要求 E:这是一个如何使用这个函数的示例。您还需要链接Urlmon.lib来编译: #include "stdafx.h" #include <stdio.h> #include <tchar.h> #include <windows.h> #include <Urlmon.h> int _tmain
Urlmon.lib
来编译:
#include "stdafx.h"
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include <Urlmon.h>
int _tmain(int argc, _TCHAR* argv[])
{
printf("URLDownloadToFile test function.\n");
TCHAR url[] = TEXT("http://google.com");
printf("Url: %S\n", url);
TCHAR path[MAX_PATH];
GetCurrentDirectory(MAX_PATH, path);
wsprintf(path, TEXT("%s\\index.html"), path);
printf("Path: %S\n", path);
HRESULT res = URLDownloadToFile(NULL, url, path, 0, NULL);
if(res == S_OK) {
printf("Ok\n");
} else if(res == E_OUTOFMEMORY) {
printf("Buffer length invalid, or insufficient memory\n");
} else if(res == INET_E_DOWNLOAD_FAILURE) {
printf("URL is invalid\n");
} else {
printf("Other error: %d\n", res);
}
return 0;
}
#包括“stdafx.h”
#包括
#包括
#包括
#包括
int _tmain(int argc,_TCHAR*argv[]
{
printf(“URL下载文件测试函数。\n”);
TCHAR url[]=文本(“http://google.com");
printf(“Url:%S\n”,Url);
TCHAR路径[最大路径];
GetCurrentDirectory(最大路径,路径);
wsprintf(路径,文本(“%s\\index.html”),路径);
printf(“路径:%S\n”,路径);
HRESULT res=URLDownloadToFile(NULL,url,path,0,NULL);
如果(res==S_OK){
printf(“Ok\n”);
}else if(res==E_OUTOFMEMORY){
printf(“缓冲区长度无效或内存不足”);
}否则如果(res==INET\u E\u下载\u失败){
printf(“URL无效\n”);
}否则{
printf(“其他错误:%d\n”,res);
}
返回0;
}
您希望如何下载此文件,以及从什么来源下载?如果它是从你自己的来源,我可以想出很多更好的方式,和更便携的方式
如果您有希望从自己的源下载,只要在任一方面设置一个套接字,发送文件化,然后发送一个字符流数组,接收FrScript字符并写入目的FSRESH。 < P>我在WTL C++应用程序中使用这个函数,还没有遇到任何不支持它的PC。(该应用程序已安装在数千个客户端上,由Windows 2000、XP、Vista和Windows 7混合而成)。顺便说一句,它也没有.NET依赖关系-它被隐藏在一个旧的Internet Explorer Win32 DLL中。它使用非常简单,可以接受任何URL,甚至可以使用正常的DOS样式的文件名(我们有时使用它从网络共享中获取文件。)我需要通过HTTP下载一个文件。我不该不提它!没问题,伙计!希望我能帮上忙。我完全同意,但是这个函数位于MSDN的.NET Framework 3.0节下,这让我很困惑(因为这个函数是一个本机win32api函数)。你能告诉我确切的要求吗?我感谢你的帮助!它不是……但是。它在Web开发>Internet Explorer开发>URL名字>URL名字>引用>函数下。没有.NET。如果你想要一个示例,那可能需要我一点时间,因为我以前从未使用过此api。我添加了一个如何使用的示例有问题的功能。如果你使用COM,你可以获得下载进度,但我不太熟悉。但是,作为一个简单的下载程序,你不需要任何花哨的东西。Rob,这种方法可靠吗?有时当我尝试下载5MB png图像时,第一次尝试失败。但奇怪的是,第二次尝试下载文件时没有任何问题。有什么建议吗?