2012-07-15 2 views
10

Visual C++ 2010에서 프로젝트를 컴파일하고 있지만 일부 Winsock 재정의 문제가 있습니다.Winsock 재정의 오류

syntax error : identifier 'SOCKADDR_STORAGE' 

을하지만 윈속 또는 Winsock2를 또는 ws2tcpip를 포함하면 나는이 같은 많은 오류를 얻을 : 모든

먼저 내가 얻을

error C2011: 'sockaddr' : 'struct' type redefinition 
error C2011: 'WSAData' : 'struct' type redefinition 
error C2011: 'linger' : 'struct' type redefinition 
+0

코드 샘플을 게시 할 수 있습니까? 또한'#define WIN32_LEAN_AND_MEAN'을 추가해보십시오. – ctor

+0

문제가되는 모듈의'#include '블록을 봅시다. – wallyk

+0

나는 이것들을 가지고 있습니다. // 포함 시키십시오. // 포함 시키십시오. #include // # 몇개의 .cpp 파일에 포함시켜야합니다. – Cooker

답변

20

귀하의 문제가 Windows.h 포함하여, 당신이 있다는 것입니다 이미 winsock.h도 포함되어 있습니다. 그것은 여기에 귀하의 문제는 당신이 Windows.h

와 함께 제공되는 여분의 물건을 많이 포함에서 컴파일러를 중지 포함하여 Windows.h 전에 #define WIN32_LEAN_AND_MEAN를 사용하여 winsock.h

의 정의의 일부를 재정의하려고 시도합니다 winsock2.h 또는 ws2tcpip.h을 포함하는 것으로 발생