'出口'命名惯例 - 它是如何运作的?

时间:2008-11-20 22:16:27

标签: delphi naming-conventions pe-exports

哪些规则适用于最终出现在PE(可移植可执行文件)的导出部分中的名称? 粗略地说,我看到名字以'_'下划线开头,'?'问号或'@'符号。这意味着什么,以及名称的其余部分呢?

另外 - 如何将命名约定转换为更有用的命令?

3 个答案:

答案 0 :(得分:3)

我认为你在提到“dll name mangling”

name mangling

用于确保导出名称是唯一的

您可以指定一个.def文件,以便以后更容易使用

简单地说,.def文件只是一个包含以下结构的文本文件

LIBRARY "MyDll"

EXPORTS
    exportFunction1

答案 1 :(得分:1)

另一件事:Jcl包含另一个非常有用的函数来解码这些符号。 你可以在JclPeImage中找到它;它被称为PeUnmangleName - 它是UndecorateSymbolNameA / W WinAPI的扩展。

答案 2 :(得分:0)

在问这个之前我应该​​再看一会儿 - 因为我刚刚找到了答案:

它被称为'名称重整',这里有一个链接解释了一下:http://en.wikipedia.org/wiki/Name_mangling

我为打扰你而道歉;干杯!