Ho bisogno di chiamare funzioni non statici C++ utenteDelphi thiscall convenzione di chiamata
Quindi ho bisogno di usare il thiscall
chiama la convenzione.
Delphi non supporta questa convenzione di chiamata.
Quindi prima di poter chiamare qualsiasi funzione membro devo spingere manualmente i parametri nello stack.
asm
mov ecx, myClassPointer
end;
Questo funziona bene ma sto cercando un modo migliore per farlo.
Al momento sto chiamando il codice asm ogni volta con il classpointer prima di chiamare la funzione, il che non è bello.
Poiché non sono un esperto di Delphi mi chiedo se è possibile dichiarare la propria convenzione di chiamata o automatizzare la chiamata di questi metodi di classe classica.
Ho scritto alcuni [questo adattatore per le interfacce Rich-Edit di Microsoft] (http://www.cs.wisc.edu/~rkennedy/windowless-rtf), che ha erroneamente omesso le convenzioni di chiamata. I miei adattatori avvolgono le interfacce in entrambe le direzioni, in modo che il codice Delphi possa chiamare il codice di Microsoft e il codice di Microsoft può richiamare un'interfaccia di Delphi, e ciascuna parte pensa che l'altra stia fornendo la convenzione di chiamata prevista. Forse lo troveresti utile. –