В столбце печати 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 ("Это тест не в Юникоде");

Еще две вещи,

  1. вам не нужно добавлять префикс PID, потому что OutputDebugString отправляет его вместе с сообщением уже.
  2. Проверьте DebugView++ на https://github.com/djeedjay/DebugViewPP
Другие вопросы по тегам