如何解决库和可执行文件的基址和大小
我一直在阅读有关图像和 dll 的基址的信息。我想知道abse aqaddress一般是做什么用的,据我了解是用来加载虚拟内存中指定基地址的dll或image,这样对吗?
在源代码文本的后面几段中,它解释了我们可以指定 Dll 和图像的大小和基址,但是如果指定的大小小于 dll 或图像可执行文件所需的大小,则会出现错误由链接器显示。谁能解释一下指定尺寸的用途是什么?
https://docs.microsoft.com/en-us/cpp/build/reference/base-base-address?view=msvc-160
键是一串字母数字字符,不区分大小写 敏感的。它通常是 DLL 的名称,但不一定是。这 键后跟 C 语言中的基地址、十六进制或 十进制表示法和可选的最大尺寸。所有三个参数都是 由空格或制表符分隔。链接器发出警告,如果 指定的大小小于所需的虚拟地址空间 程序。注释由分号 (;) 指定,并且可以放在 相同或单独的行。链接器忽略来自 分号到行尾。这个例子显示了这样一个 文件:
复制主 0x00010000 0x08000000 ;为PROJECT.exe一
0x28000000 0x00100000 ;对于 DLLONE.DLL 两个 0x28100000
0x00300000 ;对于 DLLTWO.DLL 如果包含这些行的文件
称为 DLLS.txt,以下示例命令应用此
信息:
复制链接 dlltwo.obj /dll /base:@dlls.txt,two 设置 基地址是通过在 NAME 或 LIBRARY 中使用 BASE 参数 陈述。 /BASE 和 /DLL 选项一起等效于 LIBRARY 语句。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。