美文网首页Coding
Windows.h与WinSock2.h重复定义解决办法

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

作者: Steve2017 | 来源:发表于2017-10-31 22:12 被阅读0次

    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重复定义解决办法

        本文链接:https://www.haomeiwen.com/subject/icpipxtx.html