C++ 如何重写外部函数?

C++ 如何重写外部函数?,c++,memory-management,C++,Memory Management,我在做一些练习,遇到了一个问题。我有一个DLL文件,它将被注入到exe文件。我必须通过DLL文件中的函数重写exe中的一个函数。我不能干涉exe文件,但在DLL中我可以。我得到了我必须替换的函数的地址(由GetProcAddress()函数得到),现在我必须将这个地址重定向到我的函数。我想实现的是当exe调用函数时,他不会调用他的内部函数,而是从dll调用我的函数。我希望我能把我自己说清楚。这就是职能部门负责人的样子: int ( func )( float, int ); 我试着这样做: t

我在做一些练习,遇到了一个问题。我有一个DLL文件,它将被注入到exe文件。我必须通过DLL文件中的函数重写exe中的一个函数。我不能干涉exe文件,但在DLL中我可以。我得到了我必须替换的函数的地址(由GetProcAddress()函数得到),现在我必须将这个地址重定向到我的函数。我想实现的是当exe调用函数时,他不会调用他的内部函数,而是从dll调用我的函数。我希望我能把我自己说清楚。这就是职能部门负责人的样子:

int ( func )( float, int );
我试着这样做:

typedef int ( *func_ptr )( float, int );
func_ptr myFunction;
myFunction = (*func_ptr)GetProcAddress(hModule, func_name);
*myFunction = newFunction;

您可能想看看迂回路线:
或者通过跳转到您的替换程序手动修补目标函数。

您可能需要查看迂回路线:
或者通过跳转到您的替换程序手动修补目标函数。

是的,我看到了,但实际上我想自己做。正如我所说的——我这样做是为了训练库克,我绕道而行。非常感谢你!是的,我看到了,但实际上我想自己做。正如我所说的——我这样做是为了训练库克,我绕道而行。非常感谢你!