2013-03-28 6 views
7

Sto lavorando su una DLL e voglio che le funzioni che esporto vengano esportate solo da ordinale non per nome.Esportare le funzioni da dll solo ordinale

È possibile? Se sì, vorrei sapere come è fatto.

+4

È possibile utilizzare valori ordinali: http://101.lv/learn/delphi/ch19.htm. Ma il nome non è "nascosto", quindi temo che non si ottenga il * solo per * parte. Ma naturalmente potresti nominare le tue funzioni 'Function001', ecc. –

+0

Pensavo che l'esportazione ordinale fosse deprecato in finestre a 32 bit. –

risposta

13

L'unico modo per ottenere Delphi per contrassegnare una funzione per l'esportazione è utilizzare la direttiva exports. E Delphi aggiungerà sempre una voce con nome alla tabella di esportazione PE per ogni funzione esportata. Ma è abbastanza facile dare alla funzione nessun nome.

library Project32; 

procedure Foo; 
begin 
end; 

exports 
    Foo index 1 name ''; 

begin 
end. 
+0

che farà il trick.thanks – opc0de

+1

Per quanto ne so, non si può fare di meglio con gli strumenti integrati. Immagino che potresti post-elaborare il file PE per rimuovere la tabella dei nomi esportati e lasciare gli ordinali. –

+6

+1. Non avevo idea di poter usare la stringa vuota come il nome! –