在Delphi中可以使用这些名称来取消名称吗? 如果是这样,我可以从哪里获得更多信息?Delphi - BPL中的unmangle名称
在dbrtl100.bpl中找不到某个条目的错误消息示例我想知道找不到哪个确切的函数(单元,类,名称,参数等)。
---------------------------
myApp.exe - Entry Point Not Found
---------------------------
The procedure entry point @[email protected][email protected]@IDENTIFIEROption could not be located in the dynamic link library dbrtl100.bpl.
---------------------------
OK
---------------------------
我知道这是方法GetTableNameFromSQLEx在Dbcommon单元(我有德尔福与RTL/VCL源),但有时我碰到的应用程序不是所有代码都可以(是的,客户端应该总是购买所有的第三方的东西的源代码,但有时他们不)。
但是,说这是一个例子,我没有代码,或只有接口文件(BDE.INT任何人?) 它有什么参数(即哪些潜在的过载)? 它有什么样的返回类型?
这对任何德尔福版本都是一样的吗?
--jeroen
编辑1:
感谢罗布肯尼迪: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谁发现这个German EDN article(English Google Translation)。 该文章非常准确地描述了格式,应该可以创建一些Delphi代码来解除这个问题。
皮蒂,作者提到的网站(和电子邮件)现在已经死了,但很高兴知道这个信息。
--jeroen
谢谢 - 这有帮助。实际上,-um根本不需要。这只是工作: C:\ WINDOWS \ system32> tdump -e dbrtl100.bpl | grep GetTableNameFromSQLEx File STDIN: 00026050 1385 04AC __fastcall Dbcommon :: GetTableNameFromSQLEx(const System :: WideString,Dbcommon :: IDENTIFIEROption) – 2009-10-19 21:35:57
然后我认为这是一个最近的增强。我很确定tdump并不总是这样做。 – 2009-10-20 01:32:23