Какой рекомендуемый способ получить winhttp.h?

В нашем приложении используется libcurl для HTTP, и мы хотим получить доступ к настройкам прокси-сервера Internet Explorer. Предыдущий вопрос о переполнении стека рекомендует использовать WinHttpGetIEProxyConfigForCurrentUser и WinHttpGetProxyForUrl.

К сожалению, заголовок winhttp.h, как представляется, не включается в наши копии либо Visual С++ 2005, либо Visual Studio 2008. По-видимому, его можно скачать обновленный Platform SDK и установить его в Visual С++ 2005, но это довольно болезненный процесс, и он не обязательно работает с более новыми версиями Visual Studio.

Есть ли хороший, хорошо поддерживаемый способ доступа к API WinHTTP 5.1 с С++? Или нам следует избегать использования этих API?

Ответ 1

Лучший, хорошо поддерживаемый способ доступа к API WinHTTP 5.1 с С++ - через SDK Windows (новое имя для Platform SDK) и использование тех API, которые вы упомянули.

В статье, которую вы указали, говорится, что установка SDK затруднена - хорошая новость - это старая статья с 2006 года, и в наши дни все намного проще. Просто выполните следующие действия:

  • Загрузите последний образ SDK ISO от здесь - не беспокойтесь о том, что он называется "SDK для Windows Server 2008", он также для Server 2003, XP и Vista.
  • Запись на DVD
  • Запустите setup.exe на DVD-диске, выберите полную установку и дайте ей работать в течение 1/2 часа или около того.
  • После установки goo Start → Programs → Microsoft Windows SDK → Регистрация Visual Studio → Интеграция Windows SDK с Visual Studio 2005

Возможно, вам даже будет предложено запустить инструмент интеграции во время установки - прошло некоторое время с тех пор, как я установил его, чтобы точно не вспомнить.

Затем компилятор Visual С++ сможет найти winhttp.h и winhttp.lib в соответствующих папках.

Обновить. Как обычно, все не так просто, как должно быть. EMK указала, что Windows SDK Configuration Tool не работает должным образом с Visual Studio 2008 (любая версия) и сбой после установки Visual Studio 2008 SP1. Подробности и обходные пути сообщаются здесь и здесь.

Ответ 2

В случае, если кто-то попадает на этот пост и интересуется минимальными компонентами, которые можно установить для получения winhttp, для меня работала установка Microsoft Windows Core SDK > Build Environment > Build Environment (x86 32-bit).

Ответ 3

Вам абсолютно не нужен весь SDK Просто загрузите правую часть, см. MSDN для выбора.