2014-01-15 3 views
1

2 프로젝트를 함께 병합하려고합니다. 하나는 openGl 프로젝트이고 다른 하나는 Windows 콘솔 응용 프로그램이며, 일부 기본 winsock 네트워킹이 구현되었습니다. 원래 네트워크 프로그램에 있던 #include를 모두 포함 시켜서 병합을 시작했지만 ws2def.h와 winsock.h 내의 모든 구조체와 함수를 재정의 한 100 개 이상의 오류가 발생했습니다.winsock2 재정의 병합 문제

그래서이 이전 윈속 헤더 파일을 포함에서 WINDOWS.H을 방지 할 수 있습니다

#include <windows.h> 
#include <stdio.h> 
#include <mmsystem.h> 
#include <math.h> 
#include <time.h> 

#include <list> 
#include <iostream> 

#include <stdlib.h> 
#include <string> 
#include <winsock2.h> 

#pragma comment(lib, "ws2_32.lib") 
+0

http://stackoverflow.com/a/11495642/2159051 – BWG

+0

@BWG 그냥 나이지만, 항상 혼자 트릭을하지 않는 것을 정의하는 경우 나도 몰라합니다. WinSock2.h가 Windows.h보다 먼저 포함되어 있는지 확인해야한다고 생각합니다. – NmdMystery

+0

사실. windows.h 앞에 winsock2.h를 포함하십시오. – Boofhead

답변

0
#define WIN32_LEAN_AND_MEAN 
#include <windows.h> 
#undef WIN32_LEAN_AND_MEAN 

이 내 MAIN.CPP의에에서 #include를합니다.

0

이전에 작동하는 live555 서버를 인코더 응용 프로그램과 통합하려고 할 때 동일한 문제가 발생했습니다.

각 라이브러리에는 winsock과 winsock2가 포함되어 있습니다.

처음에는 WIN32_LEAN_AND_MEAN 정의를 시도했지만 저에게 적합하지 않았습니다. 내 경우에는 작업 종료 무엇

(2013 VS)는 구성 속성에 _WINSOCKAPI_을 추가했습니다 -> 전 처리기 -> 처리기 정의.

프로젝트 전반에 windows.h가 포함될 때 winsock이 포함되지 않도록 설정하는 것입니다.

또한, 내 별도의 프로그램은 윈속을 사용 나는 그들 모두 Winsock2를 사용하여 코드를 통합 Winsock2를.

희망이 있으면 도움이됩니다.