在新类上调用RUNTIME_CLASS时发生链接错误

时间:2011-11-13 19:40:06

标签: class visual-c++ runtime linker-errors

我在MFC上完成了Visual Studio 2010项目。我收到这些错误:

2>COrderContentsItemsDocument.obj : error LNK2028: unresolved token (0A0001CA) "public: static struct CRuntimeClass * __stdcall COrderContentsItem::GetThisClass(void)" (?GetThisClass@COrderContentsItem@@$$FSGPAUCRuntimeClass@@XZ) referenced in function "public: virtual struct CRuntimeClass * __thiscall COrderContentsItemsDocument::GetItemsRuntimeClass(void)" (?GetItemsRuntimeClass@COrderContentsItemsDocument@@$$FUAEPAUCRuntimeClass@@XZ)

2>COrderContentsItemsDocument.obj : error LNK2019: unresolved external symbol "public: static struct CRuntimeClass * __stdcall COrderContentsItem::GetThisClass(void)" (?GetThisClass@COrderContentsItem@@$$FSGPAUCRuntimeClass@@XZ) referenced in function "public: virtual struct CRuntimeClass * __thiscall COrderContentsItemsDocument::GetItemsRuntimeClass(void)" (?GetItemsRuntimeClass@COrderContentsItemsDocument@@$$FUAEPAUCRuntimeClass@@XZ)

2>..\..\Output\Win32\Debug_Unicode\MindSalesManager.exe : fatal error LNK1120: 2 unresolved externals

经过一番研究,我发现,当我打电话时,问题出现了

RUNTIME_CLASS(COrderContentsItem)

所以,这个类是我从另一个已经存在的类中复制的新类。所以我想知道发现了什么问题。

干杯, 塞尔吉奥

1 个答案:

答案 0 :(得分:0)

解决方案是更改COrderContentsItem.cpp文件属性。在解决方案资源管理器中,右键单击该文件,选择“属性”,然后在“配置属性”>中。一般将Item类型从“C / C ++标题”更改为“C / C ++编译器”。

创建文件时可能是我做错了,e。 G。选择.h文件而不是.cpp文件。