Ich brauche nicht-statische C++ Funktionen MitgliedDelphi Thiscall-Aufrufkonvention
Daher muss ich anrufen, um den thiscall
Aufrufkonvention verwenden.
Delphi unterstützt diese Aufrufkonvention nicht.
Bevor ich also eine der Member-Funktionen aufrufen kann, muss ich manuell die Parameter im Stack drücken.
asm
mov ecx, myClassPointer
end;
Das funktioniert gut, aber ich suche nach einer besseren Möglichkeit, dies zu tun.
Im Moment rufe ich den Asm-Code immer mit dem Classpointer auf, bevor ich die Funktion aufruft, was nicht nett ist.
Da ich kein Delphi-Experte bin, frage ich mich, ob Sie Ihre eigene Aufrufkonvention deklarieren oder den Aufruf dieser thiscall Klassenmethoden automatisieren können.
Ich schrieb einige [Thiscall Adapter für Microsoft Rich-Edit-Schnittstellen] (http://www.cs.wisc.edu/~rkennedy/windowless-rtf), die fälschlicherweise die Aufrufkonventionen weggelassen. Meine Adapter umschließen Schnittstellen in beide Richtungen, so dass Delphi-Code den Code von Microsoft aufrufen kann und Microsoft-Code kann zu einer Delphi-Schnittstelle zurückrufen, und jede Seite denkt, dass die andere die erwartete Aufrufkonvention bereitstellt. Vielleicht findest du es nützlich. –