2015-03-09 2 views
0

При использовании следующего кода для вызова OutputDebugString в окне Windows 7 я вижу только "????" в столбце печати DebugView. Я думаю, что это может быть проблема, связанная с кодировкой, но не уверен, что кто-то видел это раньше. Вот код, который я использую, чтобы вызвать OutputDebugString.Окно печати столбцов DebugView «????»

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); 
} 

enter image description here

Спасибо заранее за любую понимание этого вопроса.

ответ

1

Как вы говорите, это, вероятно, проблема с кодировкой. Просто протестируйте его с помощью:

OutputDebugStringA («Это не-юникодный тест»);

еще две вещи,

  1. не имеют префикс PID, потому что OutputDebugString посылаемые, что наряду с сообщением уже.
  2. Отъезд DebugView ++ at https://github.com/djeedjay/DebugViewPP