Thema: C# C# DLL Tutorial?

Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#5

Re: C# DLL Tutorial?

  Alt 22. Jul 2009, 17:49
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat