请问高手如何才能修改d3d9.dll的Direct3DCreate9接口

时间:2021-02-22 23:41:44
请问高手如何才能修改d3d9.dll的Direct3DCreate9接口 
使所有的调用Direct3DCreate9接口时都调用我自己的函数。 
IDirect3D9   *   WINAPI   Direct3DCreate9(UINT   SDKVersion); 

4 个解决方案

#1


我写了程序hook,可是Direct3DCreate9函数在EXE之时就被调用了,
我的钩子DLL这时还没被加栽EXE中
所以没有替换掉Direct3DCreate9函数,该怎么弄呢,
我的钩子DLL是
SetWindowsHookEx(WH_CBT,hookproc,hinstance,NULL)使用的

具体钩住的情况是:如果被钩的EXE先创建窗口,则Direct3DCreate9
被替换,如果是先调用Direct3DCreate9再创建窗口,则每钩到。

#2


我写了程序hook,可是Direct3DCreate9函数在EXE之时就被调用了,
我的钩子DLL这时还没被加栽EXE中
所以没有替换掉Direct3DCreate9函数,该怎么弄呢,
我的钩子DLL是
SetWindowsHookEx(WH_CBT,hookproc,hinstance,NULL)使用的

具体钩住的情况是:如果被钩的EXE先创建窗口,则Direct3DCreate9
被替换,如果是先调用Direct3DCreate9再创建窗口,则每钩到。

#3


呵呵,这个问题,是由于WH_CBT钩子的原因,你仔细看看WH_CBT的说明就会明白了。

你可以测试,dx带的d3d例子是在窗体前就调用Direct3DCreate9函数,所以此时你的钩子还没有触发,所以输入表还未修改,当然就钩不到了

#4


最近刚好也在做这个功能,可以交流下,呵呵

#1


我写了程序hook,可是Direct3DCreate9函数在EXE之时就被调用了,
我的钩子DLL这时还没被加栽EXE中
所以没有替换掉Direct3DCreate9函数,该怎么弄呢,
我的钩子DLL是
SetWindowsHookEx(WH_CBT,hookproc,hinstance,NULL)使用的

具体钩住的情况是:如果被钩的EXE先创建窗口,则Direct3DCreate9
被替换,如果是先调用Direct3DCreate9再创建窗口,则每钩到。

#2


我写了程序hook,可是Direct3DCreate9函数在EXE之时就被调用了,
我的钩子DLL这时还没被加栽EXE中
所以没有替换掉Direct3DCreate9函数,该怎么弄呢,
我的钩子DLL是
SetWindowsHookEx(WH_CBT,hookproc,hinstance,NULL)使用的

具体钩住的情况是:如果被钩的EXE先创建窗口,则Direct3DCreate9
被替换,如果是先调用Direct3DCreate9再创建窗口,则每钩到。

#3


呵呵,这个问题,是由于WH_CBT钩子的原因,你仔细看看WH_CBT的说明就会明白了。

你可以测试,dx带的d3d例子是在窗体前就调用Direct3DCreate9函数,所以此时你的钩子还没有触发,所以输入表还未修改,当然就钩不到了

#4


最近刚好也在做这个功能,可以交流下,呵呵