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 }