windows.h和winsock2.h两个头文件的冲突,谢谢了

bingbingsxy 2005-11-20 07:44:51
我在使用vc编一个小的网络程序时,编译总报大量的如struct timeval在winsock.h
和winsock2.h中重复定义了.经过看代码我发现,我代码里使用了windows.h和winsock2.h两个头文件,而windows.h中又包含了winsock.h,所以会有上述的错误发生,我想问下winsock.h和winsock2.h中有大量结构和函数的声明都是重复的,这两个头文件之间的区别究竟是什么呢?应该在什么场合下使用它们?谢谢了!
...全文
224 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
DrSmart 2005-11-21
  • 打赏
  • 举报
回复
倒是不是包含关系,(因为两个文件定义是不同的才会报错)
这个我知道,解决方法就是颠倒位置


#include <winsock2.h>
#include <windows.h>
Kudeet 2005-11-21
  • 打赏
  • 举报
回复
WIN32_LEAN_AND_MEAN是在WIN32环境下加快编译速度的宏,在MFC中的宏是VC_EXTRALEAN
winks 2005-11-21
  • 打赏
  • 举报
回复
头文件声明顺序换一下就可以了。
请问sevencat:
#define WIN32_LEAN_AND_MEAN 这是干什么的。
_____non______ 2005-11-21
  • 打赏
  • 举报
回复
winsock2其实已经包含了windows了~~

如果要使用winsock2的库,就不需要包含windows了
kelinwang19 2005-11-21
  • 打赏
  • 举报
回复
winsock.h好像比winsock2.h少了一些函数
DoItFreely 2005-11-21
  • 打赏
  • 举报
回复
他们互相包含,如果windows.h包含在前不行的话就换一个顺序试试,平台SDK某个版本(2002?)之后的就有这个问题,老的反而没有问题
bluekite 2005-11-21
  • 打赏
  • 举报
回复
學習一下!
bingbingsxy 2005-11-21
  • 打赏
  • 举报
回复
那winsock.h和winsock2.h这两个头文件有什么区别呢?
sevencat 2005-11-20
  • 打赏
  • 举报
回复
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧