Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该使用URL下载文件吗? 我正在寻找最简单的方法下载C++(在Windows上)的文件。 URLDownloadToFile听起来很棒,不需要我使用curl或其他我不需要的fat库-这个函数有什么要求?它将在哪个窗口上运行_C++_File_Download - Fatal编程技术网

我应该使用URL下载文件吗? 我正在寻找最简单的方法下载C++(在Windows上)的文件。 URLDownloadToFile听起来很棒,不需要我使用curl或其他我不需要的fat库-这个函数有什么要求?它将在哪个窗口上运行

我应该使用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

谢谢

文档存在是有原因的

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(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图像时,第一次尝试失败。但奇怪的是,第二次尝试下载文件时没有任何问题。有什么建议吗?