В проекте Консольное приложение в Visual Studio я хочу перенаправить вывод Console
в окно Вывод во время отладки. p >
Перенаправление Console.Write... Методы вывода окна Visual Studio во время отладки
Ответ 1
Измените тип приложения на Windows перед отладкой. Без окна консоли Console.WriteLine работает как Trace.WriteLine. Не забывайте, что приложение reset вернется к типу консоли после отладки.
Ответ 2
class DebugWriter : TextWriter
{
public override void WriteLine(string value)
{
Debug.WriteLine(value);
base.WriteLine(value);
}
public override void Write(string value)
{
Debug.Write(value);
base.Write(value);
}
public override Encoding Encoding
{
get { return Encoding.Unicode; }
}
}
class Program
{
static void Main(string[] args)
{
#if DEBUG
if (Debugger.IsAttached)
Console.SetOut(new DebugWriter());
#endif
Console.WriteLine("hi");
}
}
** обратите внимание, что это связано с почти псевдокодом. он работает, но требует работы:) **
Ответ 3
Вы можете изменить его на System.Diagnostics.Debug.Write();
Ответ 4
Обратите внимание, что если вы используете метод dkackman, но хотите записать вывод в BOTH окно консоли и окно отладки, вы можете немного изменить его код следующим образом:
class DebugWriter : TextWriter
{
//save static reference to stdOut
static TextWriter stdOut = Console.Out;
public override void WriteLine(string value)
{
Debug.WriteLine(value);
stdOut.WriteLine(value);
base.WriteLine(value);
}
public override void Write(string value)
{
Debug.Write(value);
stdOut.Write(value);
base.Write(value);
}
public override Encoding Encoding
{
get { return Encoding.Unicode; }
}
}
Ответ 5
Попробуйте Trace.Write и используйте DebugView
Ответ 6
Спасибо, Алекс Ф., хорошее решение, но у меня не получилось, потому что мой проект был создан cmake. Итак, чтобы сделать, как предложил Алекс Ф, добавьте WIN32
или MACOSX_BUNDLE
в add_executable
add_executable(target_name WIN32 <source list>)
Или, если вы не можете редактировать CMakeList.txt, вы можете добавить -DCMAKE_WIN32_EXECUTABLE=1
в команду конфигурации cmake
.
Ответ 7
На самом деле есть самый простой способ: в окне "Параметры" Visual Studio (из меню "Сервис" ) перейдите к "Отладка", затем установите флажок "Перенаправить все окна окна вывода в окно немедленного доступа".