qInstallMessageHandler 在debug模式下无效

qInstallMessageHandler大家都知道怎么用,但是有没遇到debug调试模式下不能输出呢?

windows平台啊,linux好像没问题。

解决方案就是:使用Windows API进行输出!

哪个API?就是 OutputDebugString !代码如下:


QString cr(myMsg);
const wchar_t * encodedName = reinterpret_cast<const wchar_t *>(cr.utf16());    
::OutputDebugString(encodedName);


可以直接printf一下(没验证):

void OutputDebugPrintf(const char * strOutputString, ...)
{
#define PUT_PUT_DEBUG_BUF_LEN   1024
    char strBuffer[PUT_PUT_DEBUG_BUF_LEN] = { 0 };
    va_list vlArgs;
    va_start(vlArgs, strOutputString);
    _vsnprintf_s (strBuffer, sizeof(strBuffer) - 1, strOutputString, vlArgs);  //_vsnprintf_s  _vsnprintf
    //vsprintf(strBuffer,strOutputString,vlArgs);
    va_end(vlArgs);
    OutputDebugStringA(strBuffer);  //OutputDebugString    // OutputDebugStringW
 
}


本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不易,如果觉得有帮助,可打赏或点击右侧广告支持:

查看打赏记录

发表评论请遵守党国法律!后台审核后方可显示!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2022 labisart.com 版权所有 | 联系:labartwork@163.com