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

emk*_*emk 10 c++ windows sdk proxy winhttp

我们的应用程序使用libcurl for HTTP,我们希望能够访问Internet Explorer的代理设置.早期的Stack Overflow问题建议我们使用WinHttpGetIEProxyConfigForCurrentUserWinHttpGetProxyForUrl.

遗憾的是,winhttp.h我们的副本Visual C++ 2005或Visual Studio 2008似乎没有包含标题.显然,可以下载更新的Platform SDK并将其安装在Visual C++ 2005中,但这是一个非常痛苦的过程,它不会不一定适用于较新版本的Visual Studio.

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

sno*_*h09 15

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

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

  1. 这里下载最新的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集成

甚至可能会在安装过程中提示您运行集成工具 - 自从我安装它以来已经有一段时间了,所以我无法回想起.

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

更新像往常一样,事情永远不会像应有的那样简单.EMK指出,Windows SDK配置工具无法与Visual Studio 2008(任何版本)一起正常运行,并在安装Visual Studio 2008 SP1后崩溃.详细信息和解决方法在此处此处报告.


Sus*_*Pal 6

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