MFC中使用cout或printf输出调试信息

VS2019开发环境

一、在InitInstance() 前面添加以下函数。

#include <io.h>
#include <fcntl.h>
void InitConsoleWindow()
{
    AllocConsole();
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    int hcrt = _open_osfhandle((long)handle, _O_TEXT);
    FILE* hf = _fdopen(hcrt, "w");
    *stdout = *hf;

}

二、在程序InitInstance()函数中初始窗口之前, 调用InitConsoleWindow()

BOOL CMFCApplication1App::InitInstance()
{
    ....
    SetRegistryKey(_T("应用程序向导生成的本地应用程序"));

    InitConsoleWindow();
    
    CMFCApplication1Dlg dlg;
    m_pMainWnd = &dlg;
    .....
}

三、在解决方案管理器处,项目右击->属性->配置属性->生成事件->生成后事件->命令行->输入以下语句

editbin /SUBSYSTEM:CONSOLE $(OUTDIR)$(ProjectName).exe

四、使用,会弹出一个命令行的窗口,打印出信息

#include<iostream>
#include<stdio.h>
void CMFCApplication1Dlg::OnBnClickedOk()
{
    // TODO: 在此添加控件通知处理程序代码
    std::cout << "ssssss" << std::endl;
}
原文地址:https://www.cnblogs.com/ike_li/p/15475594.html