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

Как отметил Билл Коциас, единственный разумный способ сохранить данные typedef вашей точки private, а forward объявить их с наследованием. Вы можете сделать это немного лучше с C ++ 11. Рассмотрим это:

// LibraryPublicHeader.h

class Implementation;

class Library
{
...
private:
    Implementation* impl;
};
// LibraryPrivateImplementation.cpp

// This annoyingly does not work:
//
//     typedef std::shared_ptr<Foo> Implementation;

// However this does, and is almost as good.
class Implementation : public std::shared_ptr<Foo>
{
public:
    // C++11 allows us to easily copy all the constructors.
    using shared_ptr::shared_ptr;
};
10
задан Community 23 May 2017 в 12:34
поделиться

3 ответа

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

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

  1. Загрузите последний ISO-образ SDK из здесь - не беспокойтесь о том, что его называют «SDK для Windows Server 2008», это также для Server 2003, XP и Vista.
  2. Запись на DVD
  3. Запустите файл setup.exe на DVD, выберите полную установку и дайте ему поработать в течение 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. Подробности и обходные пути описаны здесь и здесь .

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

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

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

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

Подробности и обходные пути описаны здесь и здесь .

Подробности и обходные пути описаны здесь и здесь .

15
ответ дан 3 December 2019 в 17:22
поделиться

You absolutely don't need the whole SDK Just download the right part, see MSDN for choices.

2
ответ дан 3 December 2019 в 17:22
поделиться

На случай, если кто-нибудь наткнется на этот пост и ему интересно о минимальных компонентах, которые можно установить для получения winhttp, установка Microsoft Windows Core SDK> Среда сборки> Среда сборки (32-разрядная версия x86) сработала для меня.

6
ответ дан 3 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: