出现问题
使用std::cout和print都无法在调试程序的时候打印日志到输出窗口
解决方案
配置工程
在工程属性的对应位置添加 editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\$(ProjectName).exe 即可,如下图所示。
代码编辑
使用OutputDebugString封装一个函数
#ifdef _UNICODE
void output(const wchar_t* strOutputString, ...)
{
wchar_t strBuffer[4096] = { 0 };
va_list vlArgs;
va_start(vlArgs, strOutputString);
_vsnwprintf_s(strBuffer, _countof(strBuffer), _TRUNCATE, strOutputString, vlArgs);
va_end(vlArgs);
OutputDebugString(strBuffer);
}
#else
void output(const char* strOutputString, ...)
{
char strBuffer[4096] = { 0 };
va_list vlArgs;
va_start(vlArgs, strOutputString);
_vsnprintf_s(strBuffer, _countof(strBuffer), _TRUNCATE, strOutputString, vlArgs);
va_end(vlArgs);
OutputDebugString(strBuffer);
}
#endif
output(TEXT()"www.fengmu.com"));
或使用代码分配一个控制台窗口并重定向输出信息
//// 检查是否有其他线程已经附加到控制台
if (AttachConsole(ATTACH_PARENT_PROCESS) == FALSE) {
// 如果没有,分配一个新的控制台窗口
AllocConsole();
freopen("CONOUT$", "w", stdout);
setbuf(stdout, NULL);
}
最终效果
本文来自投稿,不代表本站立场,如若转载,请注明出处: