내 프로젝트는 winsock.h가 사용되는 windows.h를 사용하며 winsock2를 사용하는 boost : assio를 포함해야합니다. 따라서 Winsock.h가 이미 포함되었다는 많은 오류가 발생합니다. WIN32_LEAN_AND_MEAN을 정의 할 수 있습니다. 그래서 windows.h는 winsock을 사용하지 않을 것입니다. 문제는, 내가 그것을 사용하는 windows.h가 필요하고 Asio가 비동기 타이머에만 필요하다는 것입니다. 나는 그 winsock2.h 필요 없어. winsock2 사용을 해제하는 방법을 검색해 보았는데 boost : asio를 포함하기 전에 BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN을 정의하여이를 수행 할 수 있음을 발견했지만 여전히 동일한 오류가 발생합니다.Boost :: asio winsock 및 winsock 2 호환성 문제
#include <windows.h>
#define BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN
#include <boost/asio.hpp>
오류
1>c:\program files\boost\boost_1_47\boost\asio\detail\socket_types.hpp(22): fatal error C1189: #error : WinSock.h has already been included
효과가 있습니다. 감사합니다 :) –
한 가지 더 질문 : 다른 응용 프로그램 마녀가 winsock1을 사용하여 패킷을 보내는 응용 프로그램이 winsock2를 사용하여 패킷을 읽을 수 있습니까? 그리고 부절입니다. –
@DainiusKreivys winsock1에서 2로 업데이트 한 내용이 확실하지 않습니다. 주로 버그 픽스였습니다. 버그는 모든 것을 제쳐두고 잘 수행해야하지만 버그가있을 수 있기 때문에 발생할 수 있습니다. – selalerer