Перенаправить стандартный вывод в окно вывода Visual Studio из нативной c ++ dll - PullRequest
3 голосов
/ 21 сентября 2010

У меня есть приложение c # windows, которое вызывает управляемую c ++ dll, которая, в свою очередь, вызывает нативную c ++ dll. Кажется, в нативном коде c ++ есть некоторые проблемы с производительностью, поэтому я делаю простое профилирование. Я хотел бы вывести результаты профилирования, чтобы окно вывода Visual Studio подхватило его. Я думал, что printf подойдет, но ничего не отображается ни в окне вывода, ни в окне немедленного запуска. Я также попробовал fprintf, но это тоже не работает.

1 Ответ

7 голосов
/ 21 сентября 2010

Попробуйте OutputDebugString

OutputDebugString довольно прост, поэтому я склоняюсь к тому, чтобы добавить в мои проекты следующее, чтобы он работал как printf (избегая переполнения буфера):1005 *

#if (_VERBOSE)
void DebugPrintf (LPTSTR lpFormat, ...)
{
    TCHAR szBuf[1024];
    va_list marker;

    va_start( marker, lpFormat );
    _vstprintf( szBuf, lpFormat, marker );
    OutputDebugString( szBuf );
    va_end( marker );
}
#endif
...