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
}