Ошибка связи при вызове RUNTIME_CLASS в новом классе

У меня есть проект 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 ответ

Решение

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

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

Другие вопросы по тегам