我需要重新设置与我的程序一起安装的 DLL 文件组,因为它是一个 32 位程序,并且地址空间现在太碎片化了。还有一个问题是,由于与某些 DLL 的基地址冲突,整个 DLL 在冷启动时被请求分页到 RAM 中,以便加载程序可以重新设置它们的基址。一些 DLL 是我们编译的;其他人来自第 3 方。
我想要做的是有一个工具 rebase 给定的一组 DLL,以便这组 DLL 占用一个连续的内存块。然后,该工具将在安装程序编译之前运行,并且重新定位的 DLL 将安装在应用程序的私有目录中。
据我了解,Windows SDK 中包含的 REBASE.EXE 工具正是这样做的。给它一些 DLL,它会重新定义它们。
不幸的是... Windows 8 Consumer Preview 的 Windows 软件开发工具包 (SDK)说:
工具许多过时或不推荐使用的工具已从 Windows SDK 中删除。以下工具已被删除:
<snip> ReBase.exe
现在怎么办?我不想开始使用显然已经过时并且将在下一版本的 Windows 中消失的工具。假设我没看错,使用 ReBase.exe 的替代品是什么?我想限制自己使用 Windows SDK 和/或 Visual Studio 附带的工具,而不是引入 3rd-party 工具和/或编写我自己的 rebase 代码。
或者,我是否以错误的方式处理整个问题?