我正在尝试将两个项目合并在一起,一个是openGl中的项目,一个是windows控制台应用程序,并实现了一些基本的winsock网络。我开始合并它们时,只是包含了原始网络程序中的所有#include,但我得到了100多个错误,告诉我我已经重新定义了ws2def.h和winsock.h中的所有结构和函数
这些是我的main.cpp的to中的#includes
#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")发布于 2015-07-29 17:37:47
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN这可以防止windows.h包含旧的winsock头文件。
发布于 2015-09-21 21:57:19
在尝试将以前工作的live555服务器与编码器应用程序集成时,我遇到了同样的问题。
我使用的每个库都包括winsock和winsock2来完成它们的任务。
我首先尝试使用WIN32_LEAN_AND_MEAN定义,但这对我不起作用。
在我的案例(VS 2013)中,结束工作的是在配置属性->预处理器->预处理器定义中添加_WINSOCKAPI_。
这样做是为了在项目范围内设置windows.h,使其在包含winsock时不包含它。
另外,由于我的独立程序使用的是winsock和winsock2,因此我使用winsock和winsock2来统一代码。
希望这对某些人有帮助!
https://stackoverflow.com/questions/21128345
复制相似问题