http://blog.csdn.net/freefalcon/article/details/1374733
在我初学Windows网络编程时,曾经遇到过两类编译错误(VC6的Build窗口哗哗的显示了102个Errors),都是些类型未定义或者重复定义问题,让我感到很郁闷。这两种错误情况下的第一条错误信息分别为:
错误情形1:mswsock.h(69) : error C2065: 'SOCKET' : undeclared identifier 错误情形2:winsock2.h(99) : error C2011: 'fd_set' : 'struct' type redefinition
后来,我静下心来仔细分析一下错误提示及相关文件,终于找到了原因。
我们知道,Windows网络编程至少需要两个头文件:winsock2.h和windows.h,而在WinSock2.0之前还存在一个老版本的winsock.h。正是这三个头文件的包含顺序,导致了上述问题的出现。
先让我们看看winsock2.h的内容,在文件开头有如下宏定义:
浙公网安备 33010602011771号