VC/EVC 調出命令行窗口,顯示printf信息

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章