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,了,運行程序試試看。