系统的头文件mswsock.h报socket未定义错误什么情况求大神帮忙~谢谢!

yzz3730781 2014-09-26 09:28:48
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'
...全文
253 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzz3730781 2015-01-22
  • 打赏
  • 举报
回复
忘了结贴,这个问题公司大神说了,是vc6 的一个SDK版本不配。要下个 SDK platform sdk xp-sp2 然后问题就解决了,还是感谢各位大神热心帮忙。
xian_wwq 2014-09-30
  • 打赏
  • 举报
回复
引用 楼主 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或定义的版本不合适
赵4老师 2014-09-28
  • 打赏
  • 举报
回复
引用 10 楼 yzz3730781 的回复:
[quote=引用 9 楼 zhao4zhong1 的回复:] 自己的.c或.cpp中某个地方漏掉该有的分号,会导致编译器报系统头文件某处语法错误的,楼主造吗?
这还真不知道,因为这是公司发给我的一个项目,他那边是编译过的。我拷过来啥也没改应该不会少了什么分号吧。[/quote] 漏拷了某个文件或和他那边盘符或文件夹路径不一致。
yzz3730781 2014-09-28
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
SOCKET s,声明出错
这就是你的完整代码?[/quote] 完整代码很大一个项目
yzz3730781 2014-09-28
  • 打赏
  • 举报
回复
引用 9 楼 zhao4zhong1 的回复:
自己的.c或.cpp中某个地方漏掉该有的分号,会导致编译器报系统头文件某处语法错误的,楼主造吗?
这还真不知道,因为这是公司发给我的一个项目,他那边是编译过的。我拷过来啥也没改应该不会少了什么分号吧。
阿呆_ 2014-09-26
  • 打赏
  • 举报
回复
估计是#include的顺序问题或者#include <mswsock.h>前的头文件有错误。交换一下你#include的头文件的顺序。
赵4老师 2014-09-26
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
赵4老师 2014-09-26
  • 打赏
  • 举报
回复
贴出你的完整.c或.cpp代码
yzz3730781 2014-09-26
  • 打赏
  • 举报
回复
@zhao4zhong1 我按照你说的设置了还是报错
赵4老师 2014-09-26
  • 打赏
  • 举报
回复
工程、设置、C/C++、分类:Preprocessor、附加包含路径:填写附加头文件所在目录 逗号间隔多项
赵4老师 2014-09-26
  • 打赏
  • 举报
回复
自己的.c或.cpp中某个地方漏掉该有的分号,会导致编译器报系统头文件某处语法错误的,楼主造吗?
赵4老师 2014-09-26
  • 打赏
  • 举报
回复
引用 7 楼 yzz3730781 的回复:
[quote=引用 3 楼 zhao4zhong1 的回复:] 贴出你的完整.c或.cpp代码
报错是在 int PASCAL FAR WSARecvEx ( SOCKET s, char FAR *buf, int len, int FAR *flags ); SOCKET s,声明出错[/quote] 这就是你的完整代码?
yzz3730781 2014-09-26
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
贴出你的完整.c或.cpp代码
报错是在 int PASCAL FAR WSARecvEx ( SOCKET s, char FAR *buf, int len, int FAR *flags ); SOCKET s,声明出错
yzz3730781 2014-09-26
  • 打赏
  • 举报
回复
引用 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 );

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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