EXE 加载DLL 时候 创建事件
g_hEvt = ::CreateEvent(NULL, FALSE, FALSE, GLOBAL_EVENT)然后再把DLL hook进另一个exe中, 创建的g_hEvt 不相同。查了资料说,这两个值都是对同一事件内核的引用,可以不一样。。但是问题来的了, 在hook进的exe中, 我用SetEvent(g_hEvt)来发送信号, 可是在自己的ExE中 WaitForSingleObject 等待信号,确没有办法得到,有谁知道问题出在哪么。。谢谢!
g_hEvt = ::CreateEvent(NULL, FALSE, FALSE, GLOBAL_EVENT)然后再把DLL hook进另一个exe中, 创建的g_hEvt 不相同。查了资料说,这两个值都是对同一事件内核的引用,可以不一样。。但是问题来的了, 在hook进的exe中, 我用SetEvent(g_hEvt)来发送信号, 可是在自己的ExE中 WaitForSingleObject 等待信号,确没有办法得到,有谁知道问题出在哪么。。谢谢!
SetEvent前,先用OpenEvent等打开查询这个全局event
HWND g_hWnd=NULL;这个变量是全局共享的。
#pragma data_seg()
//#pragma comment(linker,"/section:MySec,RWS")
你参考一下
要改成
g_hEvt = ::CreateEvent(NULL, FALSE, FALSE, "GLOBAL\\EVENT_Name")
打开时使用相同名字
SetEvent(g_hEvt)返回错误, 句柄无效,我昏倒~~~ 这是哪里出错了呀~~
#define GLOBAL_EVENT "GLOBAL\\Event_Out"