У меня есть ситуация, когда мне нужно по существу выполнить некоторые модульные тесты против приложения MFC.
Я в основном имею некоторый gtest-код в приложении Win32 Console, который должен иметь возможность создавать экземпляр в коде приложения MFC и в основном делать некоторые утверждения и т.д....
Я попытался создать консольное приложение Win32 с включенным заголовком MFC. Затем я включил заголовочный файл моего класса приложения MFC. Однако всякий раз, когда я пытаюсь создать экземпляр, например CWindowApplicationApp the_app
в моем консольном приложении, я получаю ошибку связывания
Это часть исходного кода моего консольного приложения
CWindowApplicationApp the_app;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
}
return nRetCode;
}
ошибка LNK2019: неразрешенный внешний символ "public: __thiscall CWindowApplicationApp :: CWindowApplicationApp (void)" (? 0CWindowApplicationApp @@QAE @XZ), на который ссылается функция "void __cdecl" динамический инициализатор для "the_app" (void) "(?? __ Ethe_app @@YAXXZ)
Любая помощь? Я включил пути файла заголовка
Компонент говорит вам, что не знает, где найти объектный код для конструктора CWindowApplicationApp.
Вам нужно связать с любыми объектными файлами определение CWindowApplicationApp
(обычно WindowApplicationApp.obj), а также любые другие объектные файлы, на которые ссылается WindowApplicationApp.obj (очень зависимая от структуры вашего приложения).
Вы на неправильном пути. Невозможно создать экземпляр приложения внутри другого приложения. Будет работать над тем, чтобы добавить тестовый код в приложение и перестроить его.