2014-01-15 84 views
1

即時嘗試將兩個項目合併在一起,其中一個是openGl中的項目,另一個是Windows控制檯應用程序,實現了一些基本的winsock聯網。 我開始合併它們,只是包含了原始網絡程序中的所有#include,但我得到了超過100個錯誤,告訴我我已經重新定義了ws2def.h和winsock.h中的所有結構和函數winsock2重新定義合併問題

所以這些都是在#包括我的main.cpp的

#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我不知道,如果這只是我,但界定本身並不總是做的伎倆。我想你還必須確保Windows.h之前包含WinSock2.h。 – NmdMystery

+0

確實。在windows.h之前包含winsock2.h – Boofhead

回答

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

這可以防止從WINDOWS.H包括舊Winsock的頭文件。

0

我碰到了同樣的問題來了,當設法以前的工作LIVE555服務器與編碼器應用程序集成。

每次我用的是圖書館的人,包括Winsock和Winsock2的完成他們的任務。

我先用WIN32_LEAN_AND_MEAN試圖定義但沒有爲我工作。

什麼結束了我的情況下工作(VS 2013)是添加_WINSOCKAPI_配置屬性 - >預處理 - >預處理器定義

這樣做是什麼設置,項目範圍,WINDOWS.H當它包括不包括winsock的。

而且,我單獨的程序使用Winsock和Winsock2的我用的Winsock2對他們倆的統一代碼。

希望這可以幫助別人!