首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带def文件导出序号

不带def文件导出序号
EN

Stack Overflow用户
提问于 2016-07-18 05:43:03
回答 1查看 1.2K关注 0票数 2

我们可以使用def file.But导出序号,系统dll不使用def files.Still doesn 32.dll有569个序数导出,而user32.dll有181个序数导出。

在没有def文件的情况下,有没有导出序号的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-18 06:43:00

每个导出的函数都有一个序号。链接器会自动对它们进行编号,从1开始。但是如果您想要控制精确的值(就像Microsoft与这些DLL有关),那么您必须使用.def文件。

只有当客户端代码以前使用序号时,才需要这样做,并且您需要与未重新生成的旧代码进行二进制兼容性,并且添加或删除导出的函数。为了在99.99%的准确性内,客户端代码从不使用序号链接导出的函数。他们总是用这个名字代替。只有当您在.def文件中导出带有NONAME属性的函数时,才会依赖序号值,从而迫使客户端代码使用序号。在实践中,只有当您想隐藏出口时才会这样做。

微软绝不能对此做出任何假设,并被迫在过去23年中保持这些DLL二进制兼容。不是我们的负担。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38429312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档