user-0 提问: 系统的头文件mswsock.h报socket未定义错误什么情况求大神帮忙～谢谢！

回复:
user: user-0
content: 忘了结贴，这个问题公司大神说了，是vc6 的一个SDK版本不配。要下个 SDK platform sdk xp-sp2 然后问题就解决了，还是感谢各位大神热心帮忙。

user: user-1
content: 引用 楼主 yzz3730781 的回复:F:\VC98\INCLUDE\mswsock.h(69) : error C2065: 'SOCKET' : undeclared identifier F:\VC98\INCLUDE\mswsock.h(69) : error C2146: syntax error : missing ')' before identifier 's' F:\VC98\INCLUDE\mswsock.h(69) : warning C4229: anachronism used : modifiers on data are ignored F:\VC98\INCLUDE\mswsock.h(73) : error C2059: syntax error : ')' F:\VC98\INCLUDE\mswsock.h(89) : error C2146: syntax error : missing ')' before identifier 'hSocket' F:\VC98\INCLUDE\mswsock.h(89) : warning C4229: anachronism used : modifiers on data are ignored F:\VC98\INCLUDE\mswsock.h(96) : error C2059: syntax error : ')' F:\VC98\INCLUDE\mswsock.h(101) : error C2146: syntax error : missing ')' before identifier 'sListenSocket' F:\VC98\INCLUDE\mswsock.h(101) : warning C4229: anachronism used : modifiers on data are ignored F:\VC98\INCLUDE\mswsock.h(109) : error C2059: syntax error : ')' F:\VC98\INCLUDE\mswsock.h(131) : error C2146: syntax error : missing ')' before identifier 'hSocket' F:\VC98\INCLUDE\mswsock.h(131) : error C2165: 'left-side modifier' : cannot modify pointers to data F:\VC98\INCLUDE\mswsock.h(131) : error C2071: 'LPFN_TRANSMITFILE' : illegal storage class F:\VC98\INCLUDE\mswsock.h(138) : error C2059: syntax error : ')' F:\VC98\INCLUDE\mswsock.h(146) : error C2146: syntax error : missing ')' before identifier 'sListenSocket' F:\VC98\INCLUDE\mswsock.h(146) : error C2165: 'left-side modifier' : cannot modify pointers to data F:\VC98\INCLUDE\mswsock.h(146) : error C2071: 'LPFN_ACCEPTEX' : illegal storage class F:\VC98\INCLUDE\mswsock.h(154) : error C2059: syntax error : ')' F:\VC98\INCLUDE\winsock2.h(85) : error C2378: 'SOCKET' : redefinition; symbol cannot be overloaded with a typedef F:\VC98\INCLUDE\winsock2.h(101) : error C2146: syntax error : missing ';' before identifier 'fd_array' F:\VC98\INCLUDE\winsock2.h(101) : error C2501: 'SOCKET' : missing storage-class or type specifiers F:\VC98\INCLUDE\winsock2.h(101) : error C2501: 'fd_array' : missing storage-class or type specifiers F:\VC98\INCLUDE\winsock2.h(104) : error C2059: syntax error : ')' F:\VC98\INCLUDE\winsock2.h(1422) : error C2143: syntax error : missing ';' before '__stdcall' 有点像是.h文件include顺序不对引起的 LPFN_ACCEPTEX不能识别是因为没有定义_WIN32_WINNT或定义的版本不合适

user: user-2
content: 引用 10 楼 yzz3730781 的回复:[quote=引用 9 楼 zhao4zhong1 的回复:] 自己的.c或.cpp中某个地方漏掉该有的分号，会导致编译器报系统头文件某处语法错误的，楼主造吗？  这还真不知道，因为这是公司发给我的一个项目，他那边是编译过的。我拷过来啥也没改应该不会少了什么分号吧。[/quote] 漏拷了某个文件或和他那边盘符或文件夹路径不一致。

user: user-0
content: 引用 8 楼 zhao4zhong1 的回复:SOCKET s,声明出错 这就是你的完整代码？[/quote]  完整代码很大一个项目

user: user-0
content: 引用 9 楼 zhao4zhong1 的回复:自己的.c或.cpp中某个地方漏掉该有的分号，会导致编译器报系统头文件某处语法错误的，楼主造吗？  这还真不知道，因为这是公司发给我的一个项目，他那边是编译过的。我拷过来啥也没改应该不会少了什么分号吧。

user: user-3
content: 估计是#include的顺序问题或者#include <mswsock.h>前的头文件有错误。交换一下你#include的头文件的顺序。

user: user-2
content: 偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译，直到定位到具体语法出错的位置。” 的方法解决的。

user: user-2
content: 贴出你的完整.c或.cpp代码

user: user-0
content: @zhao4zhong1  我按照你说的设置了还是报错

user: user-2
content: 工程、设置、C/C++、分类：Preprocessor、附加包含路径：填写附加头文件所在目录 逗号间隔多项

user: user-2
content: 自己的.c或.cpp中某个地方漏掉该有的分号，会导致编译器报系统头文件某处语法错误的，楼主造吗？

user: user-2
content: 引用 7 楼 yzz3730781 的回复:[quote=引用 3 楼 zhao4zhong1 的回复:] 贴出你的完整.c或.cpp代码  报错是在 int PASCAL FAR WSARecvEx (    SOCKET s,    char FAR *buf,    int len,    int FAR *flags    );  SOCKET s,声明出错[/quote] 这就是你的完整代码？

user: user-0
content: 引用 3 楼 zhao4zhong1 的回复:贴出你的完整.c或.cpp代码  报错是在 int PASCAL FAR WSARecvEx (    SOCKET s,    char FAR *buf,    int len,    int FAR *flags    );  SOCKET s,声明出错

user: user-0
content: 引用 4 楼 zhao4zhong1 的回复:偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译，直到定位到具体语法出错的位置。” 的方法解决的。   对了这个出错就是在smwsocket.h头文件中，应该算系统库的吧怎么会报错。代码如下：   #ifndef _MSWSOCK_ #define _MSWSOCK_ #ifdef __cplusplus extern "C" { #endif  /*  * Options for connect and disconnect data and options.  Used only by  * non-TCP/IP transports such as DECNet, OSI TP4, etc.  */ #define SO_CONNDATA                 0x7000 #define SO_CONNOPT                  0x7001 #define SO_DISCDATA                 0x7002 #define SO_DISCOPT                  0x7003 #define SO_CONNDATALEN              0x7004 #define SO_CONNOPTLEN               0x7005 #define SO_DISCDATALEN              0x7006 #define SO_DISCOPTLEN               0x7007  /*  * Option for opening sockets for synchronous access.  */ #define SO_OPENTYPE                 0x7008  #define SO_SYNCHRONOUS_ALERT        0x10 #define SO_SYNCHRONOUS_NONALERT     0x20  /*  * Other NT-specific options.  */ #define SO_MAXDG                    0x7009 #define SO_MAXPATHDG                0x700A #define SO_UPDATE_ACCEPT_CONTEXT    0x700B #define SO_CONNECT_TIME             0x700C  /*  * TCP options.  */ #define TCP_BSDURGENT               0x7000  /*  * Microsoft extended APIs.  */ int PASCAL FAR WSARecvEx (    SOCKET s,    char FAR *buf,    int len,    int FAR *flags    );