2009-04-15 13 views
10

Nuestra aplicación utiliza libcurl para HTTP, y queremos tener acceso a la configuración de proxy de Internet Explorer. Una pregunta anterior sobre desbordamiento de pila recommends that we use WinHttpGetIEProxyConfigForCurrentUser and WinHttpGetProxyForUrl.¿Cuál es la forma recomendada de obtener winhttp.h?

Desafortunadamente, el encabezado winhttp.h no parece estar incluido con nuestras copias ya sea Visual C++ 2005 o Visual Studio 2008. Aparentemente, it's possible to download an updated Platform SDK and install it in Visual C++ 2005, pero es un proceso bastante doloroso, y no necesariamente funciona con las versiones más recientes de Visual Estudio.

¿Existe una buena manera de acceder a las API de WinHTTP 5.1 desde C++? ¿O deberíamos evitar el uso de estas API?

Respuesta

15

La mejor manera de acceder a las API de WinHTTP 5.1 desde C++ es a través del SDK de Windows (nuevo nombre de Platform SDK) y utilizando las API que mencionó.

El artículo al que se ha vinculado sugiere que instalar el SDK es difícil. La buena noticia es que se trata de un artículo antiguo de 2006 y ahora las cosas son mucho más fáciles. Sólo haga lo siguiente:

  1. Descargar imagen ISO desde el SDK más reciente here - no se preocupe por lo que se llama el "SDK para Windows Server 2008", que es también para Server 2003, XP y Vista.
  2. Grabar en DVD
  3. Ejecute setup.exe en el DVD, seleccione la instalación completa y déjelo funcionar durante 1/2 hora más o menos.
  4. Después de la instalación, ir a Inicio -> Programas -> Microsoft Windows SDK -> Estudio de Registro Visual ->Integrar SDK de Windows con 2005

Incluso se le pedirá que ejecute la herramienta de integración durante la instalación de Visual Studio - Ha pasado un tiempo desde que lo instalé, así que no puedo recordar exactamente.

El compilador de Visual C++ podrá encontrar winhttp.hy winhttp.lib en las carpetas apropiadas.

Actualización Como siempre las cosas nunca son tan simples como deberían. EMK ha señalado que la Herramienta de configuración SDK de Windows no funciona correctamente con Visual Studio 2008 (cualquier versión) y falla después de instalar Visual Studio 2008 SP1. Los detalles y las soluciones temporales se informaron here y here.

+0

Gracias! ¿Es realmente necesaria la instalación completa, o podríamos hacerlo solo instalando (por ejemplo) las partes relevantes de C++? – emk

+1

Olvidé las opciones que existen, probablemente pueda salirse con la suya solo con los encabezados y bibliotecas de Win32. Sin embargo, normalmente instalo absolutamente todo, ya que el espacio en el disco es barato, pero presumiblemente su tiempo (para averiguar qué componentes necesita) no lo es. – snowcrash09

+0

¡Bastante justo! Necesitamos instalarlo en muchas máquinas, así que pensé que podría valer la pena determinar qué componentes realmente necesitamos. ¡Gracias por el consejo! – emk

2

No necesita absolutamente todo el SDK Simplemente descargue la parte correcta, consulte MSDN para ver las opciones.

+0

Estoy de acuerdo en que no * necesita * todo, pero para muchas personas averiguar cuál es la parte correcta es más costoso que simplemente instalarlo todo. – snowcrash09

6

En caso de que alguien se encuentre con esta publicación y tenga curiosidad sobre los componentes mínimos que se pueden instalar para obtener winhttp, instalar Microsoft Windows Core SDK> Entorno de compilación> Entorno de compilación (x86 de 32 bits) funcionó.

Cuestiones relacionadas