Записать текст в выходное окно Visual Studio 2010 в C ++ - CLI - PullRequest
1 голос
/ 15 февраля 2012

У меня есть приложение Windows Forms, из которого мне нужно записать в окно вывода. OutputDebugString("text"); не работает - нет вывода. Я тоже пробовал некоторые другие, но я ничего не получил на работу. Есть ли функция, которую я могу просто вызвать следующим образом?

DebugWriteLine("text");

Ответы [ 4 ]

1 голос
/ 16 февраля 2012

OutputDebugString должно работать нормально. Проблема (и комментарии подтверждают это), вероятно, что вы используете только управляемую отладку. Если вы включите отладку в смешанном режиме (или только в собственном режиме), вы получите исходный результат отладки.

Если вы хотите, чтобы выходные данные отправлялись в управляемый отладчик, проверьте классы Debug и Trace в пространстве имен System::Diagnostics.

Затем есть System::Diagnostics::Debugger::Log, который проходит через некоторые обручи, чтобы быть совместимым как с нативными, так и с управляемыми отладчиками (и имеет странное поведение в результате различий). Я считаю, что когда подключен собственный отладчик, он на самом деле вызывает OutputDebugString и использует System::Diagnostics::Debug в противном случае.

1 голос
/ 17 февраля 2012

Если OutputDebugString("text"); не работает, попробуйте следующее (большое спасибо Lol4t0 за это):

  1. Войдите в настройки проекта своегоEXE для отладки.

  2. Выберите страницу свойств отладки.

  3. Выберите «Смешанный» в качестве типа отладчика.

0 голосов
/ 27 мая 2015

Просто зайдите в Сервис -> Параметры -> Отладка -> Общие и установите флажок «Перенаправить весь текст окна вывода в окно немедленного действия».

0 голосов
/ 15 февраля 2012

Это должно работать в Visual Studio.

OutputDebugString("text");

Вот документация для него: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363362(v=vs.85).aspx

Если это не работает для вас, я рекомендую прочитать черезкомментарии на странице MSDN, может быть, ваша проблема похожа на одну из перечисленных там, например:

В Visual Studio 2008 вывод этой функции идет в «Немедленное окно»,не окно вывода.Непосредственное окно закрывается по умолчанию, поэтому создается впечатление, что выходные данные потеряны.

Кроме того, если вы находите «Winbase.h (include Windows.h)» запутанным, правильная директива include для собственного приложения c ++это

#include <windows.h>

Я понимаю, что вы используете 2010, а не 2008, но это все еще может применяться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...