求解释vs和vc中引入tlb文件的差别
我这里有两个.tlb文件。
我在vc中用
#import"xxx.tlb"
#import"xxx.tlb"
1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(52) : error C2146: 语法错误 : 缺少“;”(在标识符“NetNode”的前面)1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(52) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(52) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(64) : error C2146: 语法错误 : 缺少“;”(在标识符“GetNetNode”的前面)1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(64) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(65) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(65) : warning C4183: “GetNetNode”: 缺少返回类型;假定为返回“int”的成员函数1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(67) : error C2146: 语法错误 : 缺少“;”(在标识符“NetNodeByName”的前面)1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(67) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(68) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tlh(68) : warning C4183: “NetNodeByName”: 缺少返回类型;假定为返回“int”的成员函数1>d:\great_alarm\222222\222222\debug\cssappserver.tli(14) : error C2143: 语法错误 : 缺少“;”(在“CSSAppServer::IServer::GetNetNode”的前面)1>d:\great_alarm\222222\222222\debug\cssappserver.tli(14) : error C2433: “INetNodePtr”: 不允许在数据声明中使用“inline”1>d:\great_alarm\222222\222222\debug\cssappserver.tli(14) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tli(14) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tli(18) : error C2064: 项不会计算为接受 2 个参数的函数1>d:\great_alarm\222222\222222\debug\cssappserver.tli(28) : error C2143: 语法错误 : 缺少“;”(在“CSSAppServer::IServer::NetNodeByName”的前面)1>d:\great_alarm\222222\222222\debug\cssappserver.tli(28) : error C2433: “INetNodePtr”: 不允许在数据声明中使用“inline”1>d:\great_alarm\222222\222222\debug\cssappserver.tli(28) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tli(28) : error C2086: “int CSSAppServer::INetNodePtr”: 重定义1> d:\great_alarm\222222\222222\debug\cssappserver.tli(14) : 参见“CSSAppServer::INetNodePtr”的声明1>d:\great_alarm\222222\222222\debug\cssappserver.tli(28) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>d:\great_alarm\222222\222222\debug\cssappserver.tli(32) : error C2064: 项不会计算为接受 2 个参数的函数
You must determine which of the dependency comments are not otherwise provided for by system headers and then provide an #import directive at some point before the #import directive of the dependent type library to resolve the errors.
For more information, see the Knowledge Base article "#import Wrapper Methods May Cause Access Violation" (Q242527) or "Compiler Errors When You Use #import with XML" (Q269194). You can find Knowledge Base articles on the MSDN Library media or at http://support.microsoft.com/support/.
[解决办法]
可以需要先包含某些头文件,名字空间啥的。都检查下。