是否可以在 Delphi 中解开这些名称?如果是这样,我在哪里可以获得更多信息?
在 dbrtl100.bpl 中找不到某个条目的错误消息示例 我想知道它找不到哪个确切的函数(单元、类、名称、参数等)。
---------------------------
myApp.exe - Entry Point Not Found
---------------------------
The procedure entry point @Dbcommon@GetTableNameFromSQLEx$qqrx17System@WideString25Dbcommon@IDENTIFIEROption could not be located in the dynamic link library dbrtl100.bpl.
---------------------------
OK
---------------------------
我知道这是 Dbcommon 单元中的 GetTableNameFromSQLEx 方法(我有带有 RTL/VCL 源的 Delphi),但有时我会遇到并非所有代码都可用的应用程序(是的,客户应该始终为第 3 方购买所有源代码东西,但有时他们不会)。
但是假设这是一个我没有代码的例子,或者只有接口文件(BDE.INT 任何人?)它有什么参数(即哪些潜在的过载)?它有什么返回类型?
对于任何 Delphi 版本,这是否相同?
——杰伦
编辑 1:
感谢 Rob Kennedy:tdump -e dbrtl100.bpl 成功了。根本不需要-um :
C:\WINDOWS\system32>tdump -e dbrtl100.bpl | grep GetTableNameFromSQLEx
File STDIN:
00026050 1385 04AC __fastcall Dbcommon::GetTableNameFromSQLEx(const System::WideString, Dbcommon::IDENTIFIEROption)
编辑 2:
感谢 TOndrej 发现了这篇德语 EDN 文章(英文谷歌翻译)。那篇文章非常准确地描述了这种格式,应该可以创建一些 Delphi 代码来解决这个问题。
可惜作者提到的网站(和电子邮件)现在已经死了,但很高兴知道这个信息。
——杰伦