从Win32控制台应用程序驱动MFC应用程序

时间:2013-11-05 19:46:44

标签: c++ windows winapi mfc

我有一种情况,我需要基本上对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”动态初始化器中引用'the_app''(void)“( ?? __ Ethe_app @@ YAXXZ)

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

你走错了路。无法在另一个应用程序中创建应用程序的实例。可以使用的是将一些测试代码添加到应用程序中并重建它。