2014-01-15 87 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对他们俩的统一代码。

希望这可以帮助别人!