在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