c++ - 如何将/baseaddress 设置为 "good"值?

标签 c++ dll native

我们有一个包含许多 dll 文件的项目,这些文件在应用程序启动时加载。 dll 文件的基地址确实重叠,因此内存镜像被重新定位。是否有可能自动分配基地址或为每个 dll 文件计算“好”基地址的方法?

最佳答案

您可以使用平台 SDK 和 Visual Studio 附带的 REBASE 实用程序,我认为可以设置应用程序加载的一大堆 DLLS 的基地址

您向 REBASE 提供组成程序的 DLLS 列表(不包括系统 DLL),然后它会执行所有 DLL 的虚拟加载并为它们分配新的基地址。

这可以作为最终构建步骤的一部分执行。

Dobbs 博士有一篇关于 rebase 的文章 here和一篇关于一般 rebase 的 Microsoft 文章 here

关于c++ - 如何将/baseaddress 设置为 "good"值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181629/

相关文章:

c++ - 为什么OpenCV BOW集群功能运行很慢?如何提高其性能?

c++ - 无法将参数 1 从 'int' 转换为 'int &'

c++ - 函数名称修改。 _cdecl约定

c# - 如何保护dll?

android - 在黑莓和安卓 : calling native application from a web browser?

c++ - 函数声明中的逗号

c++ - 工厂方法模式

fortran - 加载两个包含相同符号的 native 库时出现内存问题

c# - 在 Xamarin for Android (Visual Studio) 中启用 AOT

c++ - 在 C++ 中,这段代码是什么意思?