我有一个特殊的问题.我有两个DLL,我们称之为DLL-A和DLL-B.
DLL-A有一个名为的函数f1(),DLL-B也有同名的函数f1().现在在DLL-A中,就像这样f1()调用f1()DLL-B.
DLL-A:
f1()
{
f1(); //this is DLL-B function, but having the same name
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,它是f1()DLL-A 的递归调用吗?
该f1()内部函数体调用自身,导致无限递归,因为你嫌.一些可能的解决方
GetProcAddress.这允许您随意调用导入的函数.您可以将DLL-A中的函数名称更改为A_f1.
A_f1()
{
f1() //this calls DLL-B's f1
}
Run Code Online (Sandbox Code Playgroud)
在你的DEF文件中,写
EXPORTS
f1 = A_f1
Run Code Online (Sandbox Code Playgroud)
这说"我内部调用的函数A_f1应该以名称的形式导出f1到其他组件." 这样,每个使用DLL-A并调用f1(期望获得函数A)的人都会得到A_f1.
我假设无法重命名导出的函数.如果可能,那么这是一个更清洁的解决方案.(我的猜测是,这是不可能的,因为你正试图破解视频游戏.)