winsock2重新定义合并问题
问题描述:
即时尝试将两个项目合并在一起,其中一个是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")
答
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
这可以防止从WINDOWS.H包括旧Winsock的头文件。
答
我碰到了同样的问题来了,当设法以前的工作LIVE555服务器与编码器应用程序集成。
每次我用的是图书馆的人,包括Winsock和Winsock2的完成他们的任务。
我先用WIN32_LEAN_AND_MEAN试图定义但没有为我工作。
什么结束了我的情况下工作(VS 2013)是添加_WINSOCKAPI_在配置属性 - >预处理 - >预处理器定义。
这样做是什么设置,项目范围,WINDOWS.H当它包括不包括winsock的。
而且,我单独的程序使用Winsock和Winsock2的我用的Winsock2对他们俩的统一代码。
希望这可以帮助别人!
http://stackoverflow.com/a/11495642/2159051 – BWG
@BWG我不知道,如果这只是我,但界定本身并不总是做的伎俩。我想你还必须确保Windows.h之前包含WinSock2.h。 – NmdMystery
确实。在windows.h之前包含winsock2.h – Boofhead