C++ 如何重定向函数调用,然后回调到;“原件”;函数c++;

C++ 如何重定向函数调用,然后回调到;“原件”;函数c++;,c++,hook,C++,Hook,我有一种情况,我不能修改代码,它是编译的,我不能修改源代码,但需要记录发送给它的一些数据。我可以通过DLL链接到它。我试图捕获函数调用,将其重定向到链接到的新DLL,存储我需要的数据,然后调用未修改的函数。我可以通过执行dllimport并在我的DLL中重新定义函数来捕获调用,但最后我无法调用原始函数。因为它们是相同的名称,所以它只是一个递归调用。如何回调并退出 我正在VS2005下使用VC++。查看一下不要使用dlliport加载原始函数 而是使用LoadLibrary(Ex)和GetProc

我有一种情况,我不能修改代码,它是编译的,我不能修改源代码,但需要记录发送给它的一些数据。我可以通过DLL链接到它。我试图捕获函数调用,将其重定向到链接到的新DLL,存储我需要的数据,然后调用未修改的函数。我可以通过执行dllimport并在我的DLL中重新定义函数来捕获调用,但最后我无法调用原始函数。因为它们是相同的名称,所以它只是一个递归调用。如何回调并退出


我正在VS2005下使用VC++。

查看一下

不要使用dlliport加载原始函数


而是使用LoadLibrary(Ex)和GetProcAddress加载原始DLL,找到原始函数并将其放入变量中。完成后,您可以通过变量调用原始函数。

加载dll时,我会得到一个有效句柄,但调用GetProcAddress时,它会返回null。我甚至在自己编译的DLL上尝试过,我得到了同样的结果。这个函数似乎很容易使用,我不确定我做错了什么。