Zitat von
Phoenix:
Wenn Du eine C#-
Dll (also ein Assembly) aus Delphi heraus aufrufen willst, dann hast Du ein Problem. So einfach geht das nämlich nicht, eine .NET Anwendung aus nativem Code anzusprechen. Das Stichwort wäre reverse P/Invoke, und ich bin ganz ehrlich: Ich arbeite ungeheuer viel mit .Net, und das habe ich noch nie tauglich hinbekommen, obwohl ich mich mehrere Wochen damit beschäftigt habe.
C#-Kompilate sind Assemblies. Das ist kein x86-Code, den Delphi importieren könnte. In der
DLL liegt sogenannter
IL-Code (Intermediate Language-Code, vergleichbar mit Java Bytecode), und dieser
IL-Code muss erst in Assemblercode übersetzt werden damit er laufen kann.
Delphi kann den
IL-Code nicht übersetzen, kann daher also keine .NET Assembly .dll aufrufen.
Dazu braucht es eine .NET Runtime (ähnlich der Java-VM), und zwar entweder das Microsoft .NET Framework oder aber Mono. Also müsste Delphi eigentlich erst die Runtime aufrufen, der Runtime sagen: Führ diese Methoden in diesem Assembly aus, konvertiere den Rückgabewert in irgendeinen Typen den ich verstehe und gebe mir das Ergebnis zurück.
Das geht nicht so einfach. Ich würde es ehrlich gesagt sein lassen, wenn Du nicht mehrere Wochen an Research da reinstecken willst.