为什么GenTLB重命名符号(附加'_') [英] Why is GenTLB renaming symbols (appending '_')

查看:98
本文介绍了为什么GenTLB重命名符号(附加'_')的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using GenTLB.exe to compile a ridl file to .tlb and _TLB.pas files.

在生成的_TLB.pas文件中,有提示

In the resulting _TLB.pas file, there are hints that it has renamed a number of symbols by appending an underscore to the end of the name.

提示的示例为:

// 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一起使用的命令行是:

The command line I use with GenTLB is:

GenTLB -P -Pt+ <ridl file>

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

I get the same problem occuring if I use the tlibimp tool as well.

推荐答案

由于tlibimp.sym中的映射,Assign被重命名为Assign_,tlibimp.sym是与相同目录的INI格式文本文件。 tlibimp

Assign is renamed to Assign_ because of a mapping in tlibimp.sym, a INI-format text file in the same directory as tlibimp.

另一条逻辑不断将'_'附加到相对于先前全局名称而言唯一的名称tlibimp 已找到。所有枚举成员都被解释为全局变量。生成的.pas文件中还有_amTile等其他实例吗?

Another piece of logic continuously appends '_' until the name is unique with respect to prior global names tlibimp has found. All enumeration members are interpreted as globals. Are there any other instances of _amTile etc. in the generated .pas file?

这篇关于为什么GenTLB重命名符号(附加'_')的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆