Здравствуйте, Kostt, Вы писали:
K>Как подавить это окошко или сделать так, чтобы вывод шел в оба окна?
Проще всего написать свой TraceListener.
... << RSDN@Home 1.2.0 alpha rev. 642>>
Здравствуйте, Блудов Павел, Вы писали:
БП>Здравствуйте, Kostt, Вы писали:
K>>Как подавить это окошко или сделать так, чтобы вывод шел в оба окна?
БП>Проще всего написать свой TraceListener.
Или взять готовый:
http://alter.org.ua/soft/win/dbgdump/
и вместо
OutputDebugString() использовать
DbgDump_PrintXXX()
из тамошнего [url=
http://alter.org.ua/soft/win/dbgdump/sdk.php]SDK[/i]
логи собирать самой утилитой из комплекта.
Здравствуйте, Alter_, Вы писали:
A_>и вместо OutputDebugString() использовать DbgDump_PrintXXX()
В том-то и дело, что в DefaultTraceListener до OutputDebugString дело не доходит, если программа запущена из-под отладчика.
Иначе бы и DbgView нормально работал. Лечится это вот таким кодом:
public class ODSTraceListener : DefaultTraceListener
{
public ODSTraceListener() : base("ODS")
{
}
public override void Write(string message)
{
base.Write(message);
if (Debugger.IsLogging())
{
if (message == null)
{
API.OutputDebugString(string.Empty);
}
else
{
API.OutputDebugString(message);
}
}
}
}
Ну и дальше нужно выкинуть из списка Listener'ов DefaultTraceListener и добавить наш доморощенный.