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

你可能感兴趣的:(Windows.h与WinSock2.h重复定义解决办法)