È possibile rimuovere nomi come questi in Delphi? Se sì, dove posso ottenere maggiori informazioni?Delphi: annulla i nomi in BPL
Esempio di messaggio di errore in cui non è possibile trovare una determinata voce nel dbrtl100.bpl Desidero sapere quale funzione esatta non è in grado di trovare (unità, classe, nome, parametri, ecc.).
---------------------------
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
---------------------------
So che è il metodo GetTableNameFromSQLEx nell'unità Dbcommon (ho Delphi con le fonti RTL/VCL), ma a volte mi imbatto in applicazioni in cui non tutto il codice è disponibile per (sì, i clienti dovrebbero sempre comprare tutto il codice sorgente per cose di terze parti, ma a volte non lo fanno).
Ma dire che questo è un esempio per il quale non ho il codice, o solo i file di interfaccia (BDE.INT chiunque?) Quali parametri ha (cioè quale sovraccarico potenziale)? Quale tipo di reso ha?
Questo tipo di manipolazione è uguale per qualsiasi versione Delphi?
--jeroen
Modifica 1:
Grazie a Rob Kennedy: tdump -e dbrtl100.bpl fa il trucco. Non c'è bisogno di -um affatto:
C:\WINDOWS\system32>tdump -e dbrtl100.bpl | grep GetTableNameFromSQLEx
File STDIN:
00026050 1385 04AC __fastcall Dbcommon::GetTableNameFromSQLEx(const System::WideString, Dbcommon::IDENTIFIEROption)
Edit 2:
Grazie a TOndrej che hanno trovato questa German EDN article (English Google Translation). Questo articolo descrive il formato in modo abbastanza accurato e dovrebbe essere possibile creare un codice Delphi per rimuoverlo.
Peccato che il sito web menzionato dall'autore (e l'e-mail) sia morto, ma buono a sapere queste informazioni.
--jeroen
Grazie - questo aiuta. In realtà, l'-um non è affatto necessario. Funziona solo: C: \ WINDOWS \ system32> tdump -e dbrtl100.bpl | grep GetTableNameFromSQLEx File STDIN: 00026050 1385 04AC __fastcall Dbcommon :: GetTableNameFromSQLEx (const System :: WideString, Dbcommon :: IDENTIFIEROption) –
Penso che sia un miglioramento recente, quindi. Sono piuttosto sicuro che tdump non lo abbia sempre fatto. –