Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: Wie ein array of record von C# dll mit COM an Delphi übergeben?

  Alt 9. Jul 2023, 21:22
Vielen Dank für deine Antwort. Ich habe mir das nun noch einmal angeschaut. Es sah schon so aus, als ob das Richtige passiert. Es wird in der Execution Engine GetTargetForVTableEntry und darin CorDllMainWorkerForThunk aufgerufen. Dann geht es in die CLR, aber dort kommt dann eine externe Exception, aber erst, wenn, soweit ich das verstanden habe, schon auf das Objekt zugegriffen werden soll. Daraufhin habe ich ein wenig gesucht.

Lösung:
Wenn man DllExport installiert oder die Batchdatei DllExport.bat im Projektverzeichnis manuell aufruft, gibt es unten rechts die Option "Use our IL Assembler. Try to fix 0x13 / 0x11 opcodes.", welche "Rebase System.Object: System.Runtime > mscorlib" freischaltet. Beide müssen gesetzt werden, dann klappt es auch z.B. mit .NET 6.0.

Ich werde nun eine entsprechende Dokumentation zu meinem AppCentral-Projekt erstellen, die C#-Seite komplett implementieren, dann sollte das auf einem guten Weg sein.

Ich habe übrigens nun auch eine passende Java-Implementierung angefangen, so dass man auch von dort eine solche C#-DLL oder auch eine Delphi-DLL einbinden kann. Das sieht aber auch nicht ganz so einfach aus... aber mal schauen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat