我们的应用程序使用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吗?
答案 0 :(得分:15)
从C ++访问WinHTTP 5.1 API的最佳,受到良好支持的方法是通过Windows SDK(Platform SDK的新名称)并使用您提到的那些API。
您链接的文章表明安装SDK很困难 - 好消息是它是2006年的一篇旧文章,现在情况要容易得多。只需执行以下操作:
在安装过程中甚至可能会提示您运行集成工具 - 自从我安装它以来已经有一段时间了,所以我不记得了。
然后,Visual C ++编译器将能够在相应的文件夹中找到winhttp.h和winhttp.lib。
更新像往常一样,事情从未如此简单。 EMK指出,Windows SDK配置工具无法与Visual Studio 2008(任何版本)一起正常运行,并在安装Visual Studio 2008 SP1后崩溃。详细信息和变通方法报告为here和here。
答案 1 :(得分:6)
如果有人遇到这篇文章并且对可以安装以获得winhttp的最小组件感到好奇,请安装Microsoft Windows Core SDK>构建环境>构建环境(x86 32位)为我工作。
答案 2 :(得分:2)
您绝对不需要整个SDK 只需下载正确的部分,请参阅MSDN以供选择。