Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > fatal error C1189: #error: WinSock.h


Автор: kapusta007 11.7.2020, 13:06
собираю проект где использую boost asio  и ранее включил Windows.h  в другом файле при компиляции выскакивает ошибка >C:\boost_1_72_0\boost\asio\detail\socket_types.hpp(24,1): fatal error C1189: #error:  WinSock.h has already been included

поюзав google пришел к тому что надо в Проект-> Свойства->С/C++->Препроцессор->Определения препроцессора нужно определить WIN32_LEAN_AND_MEAN.

но теперь при компиляции получаю новую кучу ошибок.


Код

1>C:\boost_1_72_0\boost\asio\async_result.hpp(492,1): error C2062: тип "bool" не требуется
1>C:\boost_1_72_0\boost\asio\async_result.hpp(493,1): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>C:\boost_1_72_0\boost\asio\async_result.hpp(493,1): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>C:\boost_1_72_0\boost\asio\post.hpp(56,11): error C2039: "completion_token_for": не является членом "boost::asio".
1>C:\boost_1_72_0\boost\asio\post.hpp(27): message : см. объявление "boost::asio"
1>C:\boost_1_72_0\boost\asio\post.hpp(56,51): error C2061: синтаксическая ошибка: идентификатор "completion_token_for"
1>C:\boost_1_72_0\boost\asio\post.hpp(56,51): error C2988: неопознанное объявление или определение шаблона
1>C:\boost_1_72_0\boost\asio\post.hpp(56,51): error C2059: синтаксическая ошибка: >
1>C:\boost_1_72_0\boost\asio\post.hpp(94,5): error C2039: "completion_token_for": не является членом "boost::asio".
1>C:\boost_1_72_0\boost\asio\post.hpp(27): message : см. объявление "boost::asio"
1>C:\boost_1_72_0\boost\asio\post.hpp(94,1): error C2061: синтаксическая ошибка: идентификатор "completion_token_for"
1>C:\boost_1_72_0\boost\asio\post.hpp(95,1): error C2988: неопознанное объявление или определение шаблона
1>C:\boost_1_72_0\boost\asio\post.hpp(95,1): error C2059: синтаксическая ошибка: >
1>C:\boost_1_72_0\boost\asio\post.hpp(107,5): error C2039: "completion_token_for": не является членом "boost::asio".
1>C:\boost_1_72_0\boost\asio\post.hpp(27): message : см. объявление "boost::asio"
1>C:\boost_1_72_0\boost\asio\post.hpp(107,1): error C2061: синтаксическая ошибка: идентификатор "completion_token_for"
1>C:\boost_1_72_0\boost\asio\post.hpp(108,1): error C2988: неопознанное объявление или определение шаблона
1>C:\boost_1_72_0\boost\asio\post.hpp(108,1): error C2059: синтаксическая ошибка: >
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(81,11): error C2039: "completion_token_for": не является членом "boost::asio".
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(26): message : см. объявление "boost::asio"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(81,51): error C2061: синтаксическая ошибка: идентификатор "completion_token_for"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(81,51): error C2988: неопознанное объявление или определение шаблона
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(81,51): error C2059: синтаксическая ошибка: >
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(84,1): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(84,1): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(90,5): error C2039: "completion_token_for": не является членом "boost::asio".
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(26): message : см. объявление "boost::asio"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(90,1): error C2061: синтаксическая ошибка: идентификатор "completion_token_for"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(90,45): error C2988: неопознанное объявление или определение шаблона
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(90,45): error C2059: синтаксическая ошибка: >
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(94,1): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(94,1): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(100,5): error C2039: "completion_token_for": не является членом "boost::asio".
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(26): message : см. объявление "boost::asio"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(100,1): error C2061: синтаксическая ошибка: идентификатор "completion_token_for"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(100,45): error C2988: неопознанное объявление или определение шаблона
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(100,45): error C2059: синтаксическая ошибка: >
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(105,1): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(105,1): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>C:\boost_1_72_0\boost\asio\impl\post.hpp(105,1): fatal error C1003: число ошибок превышает 100; остановка компиляции


В чем ошибка?


Автор: kapusta007 13.7.2020, 12:13
Все разобрался!  причиной многих ошибок буста была версия языка в настройках проекта было "Предварительная версия — функции из последнего рабочего черновика C++ (std:c++latest)" изменил на С++ 17 и все заработало.  Пока искал причину еще перешел с  Windows.h или libloaderapi.h  для загрузки dll на boost::dll::shared_library)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)