Windows下的基础头文件冲突
来源:互联网 发布:华多网络 退款 编辑:程序博客网 时间:2024/06/04 18:42
Window编程时,一般都要引用Windows.h头文件,其实这个文件也只是引用了一些其它的Windows的基础的头文件,提供了API级别的Windows系统各个方面的编程支持。 但是,winsock.h和winsock2.h头文件这两个对Windows网络编程提供支持的头文件之间没有提供头文件定义的重引用支持,也就是说如果你同时引用了两个头文件的话就会在编译时提示出类型重定义冲突:
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(109) : error C2011: “fd_set” : “struct”类型重定义
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock.h(54) : 参见“fd_set”的声明c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(144) : warning C4005: “FD_SET” : 宏重定义
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock.h(88) : 参见“FD_SET”的前一个定义c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(153) : error C2011: “timeval” : “struct”类型重定义
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock.h(97) : 参见“timeval”的声明c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(209) : error C2011: “hostent” : “struct”类型重定义
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock.h(153) : 参见“hostent”的声明
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(222) : error C2011: “netent” : “struct”类型重定义
以上就是错误码提示信息,会在这些头文件中引发冲突。
解决方法是,定义一个属于自己的Windows基础头文件,将Windows.h头文件中的所有内容粘贴进来,且将:#include <winsock.h>改为#include <winsock2.h>
或是加入宏WIN32_LEAN_AND_MEAN且手动引用winsock2:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
因为winsock2是winsock的升级版,所以一般的函数接口和类型定义是可以完全兼容的,不需要任何其它的改变。
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(109) : error C2011: “fd_set” : “struct”类型重定义
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock.h(54) : 参见“fd_set”的声明c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(144) : warning C4005: “FD_SET” : 宏重定义
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock.h(88) : 参见“FD_SET”的前一个定义c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(153) : error C2011: “timeval” : “struct”类型重定义
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock.h(97) : 参见“timeval”的声明c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(209) : error C2011: “hostent” : “struct”类型重定义
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock.h(153) : 参见“hostent”的声明
c:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include/WinSock2.h(222) : error C2011: “netent” : “struct”类型重定义
以上就是错误码提示信息,会在这些头文件中引发冲突。
解决方法是,定义一个属于自己的Windows基础头文件,将Windows.h头文件中的所有内容粘贴进来,且将:#include <winsock.h>改为#include <winsock2.h>
或是加入宏WIN32_LEAN_AND_MEAN且手动引用winsock2:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
因为winsock2是winsock的升级版,所以一般的函数接口和类型定义是可以完全兼容的,不需要任何其它的改变。
- Windows下的基础头文件冲突
- VC下Winsock头文件冲突解决方法
- MDK升级后的头文件冲突
- 头文件冲突问题
- Windows下JNI生成头文件
- 头文件包含冲突问题
- LwIP和FreeRTOS的头文件冲突问题
- windows下自动生成文件夹下所有JNI所需的.h头文件
- Fedora\Windows下,用MATLAB编译包含头文件的C\C++文件
- windows下端口冲突的解决
- Windows 下 C语言的头文件后缀H和h是没有区别的
- windows下TortoiseSVN 文件冲突解决详细步骤 (图)
- Windows platform sdk 头文件的使用
- windows的iphlpapi.h头文件
- 判断Windows版本的头文件
- windows下android生成jni头文件需要注意的细节
- windows 下socket编程所需的基本函数和头文件
- 解决llvm/clang在windows下编译时找不到头文件和Lib的问题
- 论 "程序员吃青春饭" 有感
- 优化数据库的思想及SQL语句优化的原则
- 完全用Linux工作
- Malformed /uxxxx encoding.-
- ACM训练方案
- Windows下的基础头文件冲突
- 测试一下博客
- 此地牛人太多!
- bit_set中to_string的使用
- Apache+dotproject+subversion安装配置流水
- Hibernate的检索方式(一)
- 中文分词
- 利用GWT开发高性能Ajax应用
- 在SQLPLUS里用DBA身份登陆的方法