MFC工程,printf信息将无法显示,对于调试来说将很不方便。笔者的做法是,调出命令行窗口,显示printf信息。经测试在unicode和非unicode下都可以正常显示。
方法如下:
(1) 在StdAfx.h 添加以下代码:
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
(2) 在工程应用文件(工程名称.cpp),添下以下代码:
void InitConsoleWindow()
{
int nCrt = 0;
FILE* fp;
AllocConsole();
nCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
fp = _fdopen(nCrt, "wr");
*stdout = *fp;
setvbuf(stdout, NULL, _IONBF, 0);
//加入wprintf() 输出中文乱码的问题
//#include <locale.h> 文件头添加
setlocale(LC_ALL,"chs");
}
在InitInstance()函数中打开主窗口代码前,添加
InitConsoleWindow();
OK,了,运行程序试试看。