在win32和MFC程序中,有时需要输出一些调试信息,本文介绍在win32和MFC程序中使用控制台输出信息的方法。我们可以在应用程序里使用AllocConsole()函数自己开一个控制台(就像DOS窗口一样),然后重定向输入输出,就可以用printf函数向控制台输出信息了,具体方法如下:
在CWinApp的重载函数InitInstance()中输入如下语句,开辟一个控制台并重定向输出
AllocConsole(); // 开辟控制台
SetConsoleTitle(_T("Debug Output")); // 设置控制台窗口标题
freopen("CONOUT$","w",stdout); // 重定向输出
注意在VS2008下重定向可能需要如下这么写,没有试验过,大家可以试一下。
FILE* pf;
freopen_s(&pf,"CONOUT$","w",stdout);
记着,一定要在CWinApp的重载函数ExitInstance()中调用如下语句释放控制台。
FreeConsole();