2009-04-15 109 views
10

我们的应用程序使用libcurl进行HTTP,并且我们想要访问Internet Explorer的代理设置。较早的堆栈溢出问题recommends that we use WinHttpGetIEProxyConfigForCurrentUser and WinHttpGetProxyForUrl获得winhttp.h的推荐方式是什么?

不幸的是,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工作室。

从C++访问WinHTTP 5.1 API是否有一个很好的支持良好的方法?或者我们应该避免使用这些API?

回答

15

最好的,良好支持的方式从C++访问WinHTTP 5.1的API的是通过Windows SDK(为平台SDK的新名称),并使用你所提到的那些API。

您链接到文章提出安装SDK是困难的 - 好消息是从2006年的一篇旧文,事情要容易得多这些天。只要做到以下几点:

  1. here下载最新的SDK ISO映像 - 不用担心它被称为“SDK为Windows Server 2008”,它也是服务器2003,XP和Vista。
  2. 刻录到DVD
  3. 在DVD上运行setup.exe,选择完整安装并让其运行1/2小时左右。
  4. 安装完成后,转到开始 - >程序 - >微软的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后崩溃。详情和解决方法报告为herehere

+0

谢谢!实际上完全安装是必要的,还是只能安装(例如)相关C++部件? – emk 2009-04-15 15:10:04

+1

我忘记了那里有什么选项 - 你可能只能使用Win32头文件和库。然而,我通常安装绝对一切,因为磁盘空间很便宜,但大概是你的时间(找出你需要的组件)不是。 – snowcrash09 2009-04-15 15:21:23

2

你绝对不需要整个SDK 只需下载的右边部分,查看MSDN的选择。

6

如果有人遇到这篇文章,是好奇,可以安装以获得WinHTTP的最小组件,安装Microsoft Windows核心SDK>构建环境>生成环境(x86 32位)为我工作。

相关问题