我编写脚本的这个游戏使用了一个主要的 dll,我们在其中编写了我们的脚本(创造性地命名为“scripts.dll”
服务器端的 scripts.dll 加载其他插件(还有 .dll)。
问题: 我需要覆盖 scripts.dll 中的一个现有函数,例如 pluginA.dll 中的函数不会被调用。 em>
我有一个想法,也许可以获取 scripts.dll 中的那个地址,然后用(memcpy()?)我的新函数的地址覆盖它。
哦,函数的名称相同。
最佳答案
这是一个相当大的主题,需要一个冗长的答案,但值得庆幸的是,它已在其他地方详细介绍。 This CodeProject article是关于该主题的相当不错的读物 - 它解释了理论以及如何使用方便的 Microsoft Detours图书馆很容易做到这一点。
关于c++ - 在不编辑主 dll 的情况下覆盖另一个 dll 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1106519/