Ошибка связи при вызове RUNTIME_CLASS для нового класса - PullRequest
0 голосов
/ 13 ноября 2011

У меня есть проект Visual Studio 2010, выполненный на MFC.Я получаю эти ошибки:

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 голосов
/ 13 ноября 2011

Решение состоит в том, чтобы изменить свойства файла COrderContentsItem.cpp.В обозревателе решений щелкните правой кнопкой мыши файл, выберите «Свойства» и в «Свойствах конфигурации»> «Общие» измените тип элемента с «Заголовок C / C ++» на «Компилятор C / C ++».

Возможно, я что-то не так сделалпри создании файла, например, при выборе файла .h вместо .cpp.

...