Windows.h与WinSock2.h重复定义解决办法

1.问题原因

在VS2010中进行UDP或者TCP/IP通信时,如果同时包含了Windows.h和WinSock2.h两个头文件,在编译的时候会出现大量重复定义错误。

2.问题分析

这个问题出现的原因是Windows.h文件中本身包含了Winsock.h头文件,而WinSock2.h是WinSock.h的升级版,两个同时引用的时候出现重复定义问题。

3.问题解决

解决思路就是要让Winsock.h和WinSock2.h两个当中只能用一个进行编译,这样的话解决的方法有:

方法一 不要同时包含Windows.h或者WinSock2.h,这对于一些不需要用到硬件接口的程序可行,但是对于需要用于硬件操作的程序必须包含Windows.h,这时这个方法会失效

方法二WinSock2.h放在Windows.h前面,这是一个最方便,最简单的方法。

方法三 添加自定义宏,打开VS2010中的Project的属性,然后C/C++->Preprocessor->Preprocessor Definitions中添加如下宏:WIN32_LEAN_AND_MEAN

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容