我正在编写一个可编写脚本的游戏引擎,为此我有大量执行各种任务的类。引擎的大小正在迅速增长,因此我想到将大型可执行文件拆分为 dll 模块,以便仅包含游戏编写者实际使用的组件。当用户编译他们的游戏(也就是说他们的脚本)时,我希望正确的 dll 成为最终可执行文件的一部分。我已经有相当多的覆盖数据,所以我想我也许可以将 dll 存储为这个块的一部分。我的问题归结为:
是否可以欺骗 LoadLibrary 以某个偏移量开始读取文件?这将使我不必将 dll 提取到一个不干净的临时文件中,或者完全取消自动包含 dll 并简单地指示我的用户将 dll 与他们的游戏一起打包。
最初我想采用“从内存中加载 dll”的方法,但出于可移植性的原因拒绝了它,只是因为它看起来像一个可怕的 hack。
有什么想法吗?
亲切的问候,
菲利普·班尼法尔