根据MSDN docs,EndScene不接受任何参数。但是我注意到,当人们钩住EndScene时,他们的钩住的EndScene函数采用一个IDirect3DDevice9* device参数。例如:IDirect3DDevice9::EndScene hook sometimes get NULL in the parameter IDirect3DDevice9询问此问题的人的EndScene参数为IDirect3DDevice9* device。为什么是这样?这是第二个示例:http://pastebin.com/raw.php?i=9HqJ3Wzz 最佳答案 在C ++中,成员函数的实现与常规函数类似,但是采用一个附加的第一个参数作为指向对象的指针:this指针。钩挂函数时,通常涉及使用实际函数的原始地址,因此最简单的方法(更像是唯一的明智方法)是将该钩挂函数作为标准C样式函数进行处理,并人为地添加指针第一个参数。编辑:调用约定确实确实是一个指出的问题,但是它适用于this和类似的方法,因为它们的方法声明为IDirect3DDevice9。
10-08 15:24