1. 程式人生 > 其它 >MFC中使用cout或printf輸出除錯資訊

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;
}