error C2332: “struct”: 缺少标记名

环境:xp sp3,vs2008,

一段这样的代码

typedef struct TCP_KEEPALIVE
{
    u_long onoff;
    u_long keepalivetime;
    u_long keepaliveinterval;
}TCP_KEEPALIVE;

报错

 

1>正在编译...
1>xtype.cpp
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(275) : error C2332: “struct”: 缺少标记名
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(275) : error C2011: “”: “enum”类型重定义
1>        c:\program files\microsoft sdks\windows\v6.0a\include\shlobj.h(3599) : 参见“”的声明
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(275) : error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(275) : error C2059: 语法错误 : “常量”
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(276) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(276) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(280) : error C2059: 语法错误 : “常量”

 

查看类定义,结果有两个

ws2ipdef.h已经定义了TCP_KEEPALIVE,

哎,只能改自己的结构体名了

你可能感兴趣的:(点点滴滴)