代码
#include <iostream>
#include <io.h>
#include <fcntl.h>
#include <process.h>
#include <Windows.h>
#include<thread>
#include <windows.h>
#include <atlbase.h>
#include <atlstr.h>
// -------------------------------------------------------------------------------
// PROPERTIES OF OBJECTS
// -------------------------------------------------------------------------------
// NAME | DBWIN_BUFFER_READY DBWIN_DATA_READY DBWIN_BUFFER
// -------------------------------------------------------------------------------
// TYPE | Event Event FileMapping
// ACCESS | All Sync All
// INIT STATE | Signaled Nonsignaled Not open
// PROPERTY | Auto-Reset Auto-Reset PAGE_READWRITE
// Handle Name | hEventBufferReady hEventDataReady DBWinBufferHandle
// -------------------------------------------------------------------------------
HANDLE DBWinBufferHandle;
HANDLE hEventBufferReady;
HANDLE hEventDataReady;
HANDLE m_hWinDebugMonitorThread;
BOOL m_bWinDebugMonStopped;
struct DBWIN_BUFFER_VIEW
{
DWORD dwProcessId;
char data[4096 - sizeof(DWORD)];
};
struct DBWIN_BUFFER_VIEW* pDBWIN_BufferView;
bool gMonitor = true;
std::thread gMonitorThread;
void MonitorFunction();
DWORD InitializeMonitor()
{
DWORD errorCode = 0;
BOOL bSuccessful = FALSE;
SetLastError(0

本文介绍了如何监听和理解OutputDebugString的工作原理,包括其与DebugViewPP的关系,以及如何在不使用VS2019调试时查看调试字符串。通过等待DBWIN_DATA_READY事件并重定向输出,可以在控制台上捕获OutputDebugString的调试信息。
最低0.47元/天 解锁文章
1858

被折叠的 条评论
为什么被折叠?



