0

我有一种情况,我需要对 MFC 应用程序运行一些单元测试。

我基本上在 Win32 控制台应用程序中有一些 gtest 代码,需要能够在 MFC 应用程序的代码中创建一个实例,并且基本上做一些断言等......

我试图创建一个包含 MFC 标头的 Win32 控制台应用程序。然后我包含了我的 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 `dynamic initializer for 'the_app''(void)”(??__Ethe_app @@YAXXZ)

有什么帮助吗?我已经包含了头文件路径

4

2 回答 2

0

你走错路了。不可能在另一个应用程序中创建应用程序的实例。可行的是将一些测试代码添加到应用程序中并重新构建它。

于 2013-11-05T21:36:18.040 回答
0

链接器告诉您它不知道在哪里可以找到 CWindowApplicationApp 的构造函数的目标代码。

您需要链接到任何定义的目标文件CWindowApplicationApp(通常是 WindowApplicationApp.obj),以及由 WindowApplicationApp.obj 引用的任何其他目标文件(非常依赖于您的应用程序结构)。

于 2013-11-05T21:10:49.433 回答