Как отметил Билл Коциас, единственный разумный способ сохранить данные 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;
};
Лучший, хорошо поддерживаемый способ доступа к API WinHTTP 5.1 из C ++ - через Windows SDK (новое имя для Platform SDK) и с использованием тех API, о которых вы упоминали.
В статье, на которую вы ссылались, предполагается, что установка SDK является сложной задачей - хорошая новость - это старая статья 2006 года, и в наши дни все намного проще. Просто сделайте следующее:
Вам даже может быть предложено запустить инструмент интеграции во время установки - с тех пор, как я его установил, прошло много времени, поэтому я не могу точно вспомнить.
Компилятор 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. Подробности и обходные пути описаны здесь и здесь .
Подробности и обходные пути описаны здесь и здесь . Подробности и обходные пути описаны здесь и здесь .You absolutely don't need the whole SDK Just download the right part, see MSDN for choices.
На случай, если кто-нибудь наткнется на этот пост и ему интересно о минимальных компонентах, которые можно установить для получения winhttp, установка Microsoft Windows Core SDK> Среда сборки> Среда сборки (32-разрядная версия x86) сработала для меня.