В столбце печати DebugView отображается "????"
При использовании следующего кода для вызова OutputDebugString в окне Windows 7 я вижу только "????" в столбце печати DebugView. Я думаю, что это может быть связано с кодировкой, но не уверен, что кто-то видел это раньше. Вот код, который я использую для вызова OutputDebugString.
void dbgprint(char *format, ...)
{
static DWORD pid=0;
va_list vl;
char dbgbuf1[2048],
dbgbuf2[2048];
// Prepend the process ID to the message
if ( 0 == pid )
{
pid = GetCurrentProcessId();
}
EnterCriticalSection(&gDebugCritSec);
va_start(vl, format);
wvsprintf(dbgbuf1, format, vl);
wsprintf(dbgbuf2, "%lu: %s\r\n", pid, dbgbuf1);
va_end(vl);
OutputDebugString(dbgbuf2);
LeaveCriticalSection(&gDebugCritSec);
}
Заранее благодарим за понимание этого вопроса.
1 ответ
Как вы говорите, это, вероятно, проблема с кодировкой. Просто проверьте это с:
OutputDebugStringA ("Это тест не в Юникоде");
Еще две вещи,
- вам не нужно добавлять префикс PID, потому что OutputDebugString отправляет его вместе с сообщением уже.
- Проверьте DebugView++ на https://github.com/djeedjay/DebugViewPP