获取winhttp.h的推荐方法是什么?

时间:2009-04-15 14:38:03

标签: c++ windows proxy sdk winhttp

我们的应用程序使用libcurl for HTTP,我们希望能够访问Internet Explorer的代理设置。早期的Stack Overflow问题recommends that we use WinHttpGetIEProxyConfigForCurrentUser and WinHttpGetProxyForUrl

不幸的是,winhttp.h标题似乎没有包含在我们的副本中,无论是Visual C ++ 2005还是Visual Studio 2008.显然,it's possible to download an updated Platform SDK and install it in Visual C++ 2005,但这是一个非常痛苦的过程,它不会必须使用较新版本的Visual Studio。

是否有一种良好的,受到良好支持的方式从C ++访问WinHTTP 5.1 API?或者我们应该避免使用这些API吗?

3 个答案:

答案 0 :(得分:15)

从C ++访问WinHTTP 5.1 API的最佳,受到良好支持的方法是通过Windows SDK(Platform SDK的新名称)并使用您提到的那些API。

您链接的文章表明安装SDK很困难 - 好消息是它是2006年的一篇旧文章,现在情况要容易得多。只需执行以下操作:

  1. here下载最新的SDK ISO映像 - 不要担心它被称为“Windows Server 2008的SDK”,它也适用于Server 2003,XP和Vista。
  2. 刻录到DVD
  3. 运行DVD上的setup.exe,选择完整安装并让它运行1/2小时左右。
  4. 安装后,转到开始 - >程序 - > Microsoft Windows SDK - > Visual Studio注册 - > 将Windows SDK与Visual Studio 2005集成
  5. 在安装过程中甚至可能会提示您运行集成工具 - 自从我安装它以来已经有一段时间了,所以我不记得了。

    然后,Visual C ++编译器将能够在相应的文件夹中找到winhttp.h和winhttp.lib。

    更新像往常一样,事情从未如此简单。 EMK指出,Windows SDK配置工具无法与Visual Studio 2008(任何版本)一起正常运行,并在安装Visual Studio 2008 SP1后崩溃。详细信息和变通方法报告为herehere

答案 1 :(得分:6)

如果有人遇到这篇文章并且对可以安装以获得winhttp的最小组件感到好奇,请安装Microsoft Windows Core SDK>构建环境>构建环境(x86 32位)为我工作。

答案 2 :(得分:2)

您绝对不需要整个SDK 只需下载正确的部分,请参阅MSDN以供选择。