MFC中使用cout或printf输出调试信息
VS2013开发环境下:
在MFC编程中使用cout或者printf打印信息,需要初始化控制台,然后才可以使用cout或者printf等。
#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;
}
BOOL CSensorTestApp::InitInstance()
{
....
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
//控制台
InitConsoleWindow();
....
}
使用cout和printf记得添加头文件。
#include <iostream>
#include <stdio.h>
using namespace std;
VS2017及以后版本,方法还需要再VS2013版本的基础上再配置一下解决方法,具体步骤如下:
右键解决方案==》属性==》配置属性==》生成事件==》生成后事件==》命令行 输入:editbin /SUBSYSTEM:CONSOLE $(OUTDIR)$(ProjectName).exe