我应该使用 URLDownloadToFile 吗?

2024-03-24

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

Thanks!


http://msdn.microsoft.com/en-us/library/ms775123%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/ms775123%28VS.85%29.aspx

该文档的存在是有原因的。

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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该使用 URLDownloadToFile 吗? 的相关文章

随机推荐

  • iOS/Android跨平台开发[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经尝试用 Java 开发 Android 应用程序有一段时间了 并且开始掌握它 然而 如果我想开始使用 iOS 版本 我需要从头开始编
  • 如何理解clojure的lazy-seq

    我正在尝试理解 Clojurelazy seq运算符 以及惰性求值的一般概念 我知道这个概念背后的基本思想 表达式的求值被延迟 直到需要该值为止 一般来说 这可以通过两种方式实现 在编译时使用宏或特殊形式 在运行时使用 lambda 函数
  • 从 Com Interop Assembly 中查找 COM DLL 路径

    我正在尝试围绕旧版 COM 对象编写一个包装器 并将该包装器安装到 GAC 中 目标是自动设置组件所需的特定配置信息 并为我的所有应用程序使用一个通用的强类型接口 到目前为止 我的解决方案是将 XML 配置文件保留在与原始 COM DLL
  • 计算差异考虑到我们有两个不同的时间和日期字符串,两次之间

    我将时间数据分为两个字符串 一个字符串表示日期 另一个字符串表示时间 我想计算差异 在Java中这样的两次 e g 时间 1 26 02 2011 和 11 00 AM 时间 2 27 02 2011 和 12 15 AM 相差大约 13
  • Java:从字符串中删除数值

    在该社区的帮助下 我成功地从用户输入中删除了数字值 但是 下面的代码将仅检索已删除的数字之前的字母字符 import java util Scanner public class Assignment2 A public static vo
  • Android:更改默认家庭应用程序

    对于某些特定要求 我需要更改 Android 默认主页应用程序 使用我的自定义主页应用程序 我的应用程序内的一个设置 将切换默认主页 我的应用程序或以前的主页 我不希望用户进行非常复杂的 Android 设置 任何人都可以帮我解决一下它在哪
  • 在哪里可以初始化模块范围的变量?

    我正在尝试做这样的事情 angular module MyModule ui config function rootScope rootScope Gender M Male F Female U Unknown 但我收到这个错误 未捕获
  • Bash 中的 [ 和 [[ 有什么区别? [复制]

    这个问题在这里已经有答案了 我查看了 bash 手册页和 说它使用条件表达式 然后我查看了条件表达式部分 它列出了与test and 所以我想知道 有什么区别 and 在巴什 bash 的改进是 命令 它具有多项增强功能 如果您编写针对 b
  • 使用 Android 格式化字符串时间戳

    出于某种原因 这让我抓狂了 我在 Android 中有一个 UNIX 时间戳作为字符串 我想要做的就是对其进行格式化 以便它返回用户的 droid 时区中的日期 时间 我可以将其转换为时间戳 但它使用 GMT 而不是其本地化区域 Thank
  • 如何一次性将排序规则更改为utf8_bin

    我已将所有数据库表的排序规则设置为latin1 swedish ci现在我意识到我应该使用utf8 bin or utf8 general ci 如何将表中的排序规则更改为utf8 bin or utf8 general ci一气呵成 我可
  • 谷歌地图自动完成、带有边界框的严格边界和自定义 UI

    我有一个输入 我想用作谷歌地图自动完成搜索 但具有一些自定义 UI 制作标准自动完成小部件 https developers google com maps documentation javascript reference Autoco
  • 如何在布线级别验证 Rails 中的静态参数?

    我目前有以下宁静的网址 questions 2011 05 我的提问路线是 match questions year month gt Questions month 如何在路线级别验证上述年份和月份参数 以便 年和月是整数 最短 最长一年
  • android numberpicker 用于浮点数

    我们应用程序的用户应该能够调整浮点数 目前 我用所有可能的值填充了 ArrayAdapter 并将其附加到微调器 这个解决方案并没有真正满足我们的期望 因为旋转下拉框太高了 有没有更好的办法 我正在查看 Numberpicker 但这似乎只
  • 造型 ActionBar Sherlock

    我正在尝试自定义我的 sherlock 操作栏 但我在 style xml 中编写的任何代码都未被识别 在我的清单文件中 android theme style Theme Sherlock 我的样式 xml
  • 通过 nginx 和 ServiceStack 在 fastcgi-mono-server 上进行小负载测试后,网关 502 错误

    我正在尝试在 nginx 和 fastcgi mono server 下使用 ServiceStack 运行 Web 服务 API 服务器启动正常 API 已启动并运行 我可以通过 ServiceStack Profiler 在浏览器中查看
  • Scala-IDE 中工作表中的类导致错误

    只需在工作表中键入以下内容即可实例化一个类 注意 工作表是使用 文件 gt 新建 gt Scala 工作表 创建的 sc文件 不是普通文件 scala文件 并单击保存会导致虚假错误 鼠标移到 这条线上有多个标记 简单表达式的非法开头 符合预
  • 基于检查约束的分区修剪未按预期工作

    为什么下面的查询计划中包含表 events 201504 根据我的查询和该表的检查约束 我希望查询规划器能够完全修剪它 database d events 201504 Table public events 201504 Column T
  • Clojure WebSocket 应用程序的 nginx 产品设置

    我正在尝试部署我的第一个 Clojure WebSocket 应用程序 我想我已经很接近了 我在本地得到了很好的响应 看起来端点想要面对外界 当我运行时我看到端口是开放的netstat 但没有任何反应 我确信我的某些设置不正确nginx 我
  • 如何在 Vue.js 方法中使用外部 JavaScript 对象

    我正在尝试让 Stripe 与我的 Vue js 2 应用程序一起工作 出于 PCI DSS 原因 Stripe 要求其 Javascript总是从加载js stripe com https stripe com docs web setu
  • 我应该使用 URLDownloadToFile 吗?

    我正在寻找用 C 下载文件的最简单方法 在 Windows 上 URLDownloadToFile 听起来很棒 并且不需要我使用curl 或其他我不需要的胖库 这个函数有什么要求 它将在哪些 Windows 上运行 Thanks http