outputdebugstring(什么是outputdebugstring)
一、怎么查看OutputDebugString输出的信息debugview
楼主这一句:先启动了debugview然后按F5运行我的代码。
在开发环境里调试貌似是不行的。
你可以编译了你的程序以后,直接运行你的程序,就好了,不要在开发环境里调试运行。
要是想在开发环境里看调试信息,在开发环境底部的"输出"标签就可以看得到(VC),之所以DebugView看不到消息,应该是被开发环境截取了。
二、如何捕获 debugoutputstring
由2个事件,1个系统缓冲区的映射指针来实现.
1个事件用来得到对系统缓冲区的访问权,另一个用来通过对系统缓冲区操作完毕.
缓冲区的声明为:
#pragma pack(push)
#pragma pack(1)
typedef struct __DEBUGBUFFER
{
DWORD sz;
char szString[4096- sizeof(DWORD)];//这里保存了OutputDebugString输出的字符串
} DEBUGBUFFER,*PDEBUGBUFFER;
#pragma pack(pop)
请求访问缓冲区的事件名为:"DBWIN_BUFFER_READY"
通知缓冲区有新数据的事件名为:"DBWIN_DATA_READY"
系统缓冲区对象名为:"DBWIN_BUFFER"