2012-02-24 1 views
2

Я пытался получить OutputDebugString для работы безрезультатно. Мой код следующим образом:OutputDebugString не печатает информацию в Visual Studio 2010

int main(int argc, char* argv[]) 
{ 
    OutputDebugStringA("asd"); 
    getchar(); 
    return 0; 
} 

Когда я запустить приложение без отладки, DebugView показывает asd но когда я отлаживать (F5), не печатает мою строку в выходной или промежуточного окна.

Я пробовал OutputDebugString с asd, но ничего не изменилось. В чем проблема?

ответ

10

Вы должны прервать строку с помощью «\ n», но это должна быть только косметическая вещь. Я пробовал свой код прямо сейчас, и я могу видеть строку asd в окне вывода VS 2010 без каких-либо проблем.

Примечание: в контекстном меню панели «Выход» (доступно с помощью правой кнопки мыши) вы можете выбрать, какая информация должна отображаться на панели. Убедитесь, что вы включили «Выход программы». Также убедитесь, что вы просматриваете правильное окно (вывод или немедленное) в зависимости от вашей настройки «Перенаправить все текст окна вывода в окно« Немедленное »» в «Инструменты/Параметры/Отладка/Общие».

+0

Это помогает отлаживать отладку asd без добавления к следующей строке отладки, но «asd \ n» не помогает основной проблеме. – holgac

+0

Спасибо за ваш интерес, но ваш отредактированный текст тоже не помог. Сначала он был отключен, но при этом он не менял выход, проблема сохраняется. – holgac

+1

Извините, я где-то читал, что выход может перейти в промежуточное окно, вместо этого я изменил настройки, которые пересылают выходные сообщения в окно промежуточного уровня. Итак, вы были правы в своей записке. – holgac

2

У нас была аналогичная проблема с отладки смешанного режима x64, поэтому, если вы используете 64-битную версию страницы «Отладка» для основного проекта запуска. Тип Debugger должен быть установлен как «Смешанный», а не «Авто», чтобы увидеть как собственный, так и управляемый вывод отладки.

См. here для получения дополнительной информации.