为什么GenTLB重命名符号(附加'_')

时间:2009-02-10 05:41:01

标签: delphi delphi-2009

我正在使用GenTLB.exe将ridl文件编译为.tlb和_TLB.pas文件。

在生成的_TLB.pas文件中,有一些提示,它通过在名称的末尾附加下划线重命名了多个符号。

提示的样本是:

// Errors:
//   Hint: Symbol 'Assign' renamed to 'Assign_'
//   Hint: Enum Member '_amStretch' of 'EnumVRSAppliedMaterial' changed to '_amStretch_'
//   Hint: Enum Member '_amTile' of 'EnumVRSAppliedMaterial' changed to '_amTile_'

我与GenTLB一起使用的命令行是:

GenTLB -P -Pt+ <ridl file>

如果我也使用tlibimp工具,我也会遇到同样的问题。

2 个答案:

答案 0 :(得分:5)

我不确定,但是如果名称与名称冲突并且名称存在冲突(例如,保留字等等),通常会在名称前面附加下划线。 它可能是那样的。

答案 1 :(得分:3)

由于tlibimp.sym中的映射,

Assign被重命名为Assign_,这是与tlibimp在同一目录中的INI格式文本文件。

另一条逻辑连续追加'_',直到名称相对于先前的全局名称tlibimp找到。所有枚举成员都被解释为全局变量。在生成的.pas文件中是否还有_amTile等的其他实例?