Brak interfejsu API, który umożliwia dostęp do ciągów wyjściowych za pośrednictwem OutputDebugString
.
Istnieją dwa sposoby pozyskiwania danych:
Protokół obsługuje tylko jednego słuchacza, więc pierwsze podejście nie jest kompatybilne z wieloma instancjami aplikacji, innymi aplikacjami wykonującymi tę samą funkcję lub debuggerami. Będzie także przechwytywać dane wyjściowe ze wszystkich aplikacji. To nie jest dobry pomysł. Wspominam o tym tylko dlatego, że jest to oczywiste, ale błędne rozwiązanie.
OutputDebugStringW
jest (niezwykle) wrapper wokół OutputDebugStringA
, więc ta ostatnia jest funkcją do przechwycenia. Istnieje wiele bibliotek, które ułatwiają nawiązywanie połączeń, więc każde połączenie z numerem OutputDebugString
stanie się wezwaniem do zdefiniowanej przez ciebie funkcji i możesz zrobić wszystko, co chcesz, z danymi.