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

VS2019开发环境

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

#include

#include

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

#include

void CMFCApplication1Dlg::OnBnClickedOk()

{

// TODO: 在此添加控件通知处理程序代码

std::cout << "ssssss" << std::endl;

}