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,了,运行程序试试看。

你可能感兴趣的:(File,测试,null,mfc,FP,output)