1.钩子子程
系统用的是被监视的线程来调用此钩子子程的,但是其数据是不共享的.
意味着钩子子程中的修改了全局变量,原来加载此DLL的中的全局变量是不会发生改变的.
可能是堆栈线程的原因,导致它们的数据都不共享的..!! 在回调函数中,就算设置了
静态变量,但是每次调用回掉函数,静态变量的时也是会被重新初始化.!~!
所以如果要共享数据就得:
#pragma data_seg("Shared")
//中间加入变量
#pragma data_seg()
#pragma comment(linker,"/SECTION:Shared,RWS")
2.在DLL中的钩子
在DLL设置了全局钩子,那么将导致启动的每个进程都会被加载其DLL.