Ошибка связи при вызове 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.