Einzelnen Beitrag anzeigen

Benutzerbild von rweinzierl
rweinzierl

Registriert seit: 22. Mär 2005
98 Beiträge
 
#3

Re: c# DLL .NET in DELPHI32 nutzen

  Alt 22. Sep 2008, 13:48
Hallo


Dot.Net Dlls unterscheiden sich grundsätzlich von normalen Delphi bzw. C++ DLL's aus der WIN32 Welt.

Bei einer Win32.dll stellt die DLL einen Satz an funktionen bereit die im Prenzip von jeder Sprache aus aufgerufen werden können.

Bei einer C# DLL funktiert ganz anders.
Dort liegen die Funkionen als vorkopmpilierter Quellcode vor und benötigen unbedingt die Dot.Net Runtime.

==> Ein normaler Aufruf aus Delphi ist (fast) unmöglich.

Der Standard Weg den Microsoft empfiehlt ist der Umweg über .COM ( bzw AcitveX)
( Hat halt den Nachteil das alles wieder durch die Registry muss!)

Im Internet findet man auch eine Methode die dot.net Runtime komplett in den eigenen Prozess zu laden, und von dort aus die c# DLL wieder anzusprechen ==> Ist aber (meiner Meinung nach) nur etwas für absolute Experten.

Als Bastellösung kann man noch eine Anwendung in c# schreiben ( diese kann die DLL ohne Probleme Laden), und kommuniziert über eine selber ausgedachte Schnittstelle (Socket, Named Pipes, Mapped Memory ....)

von Remobjects gibts ein Produkt names Hydra, auch damit sollte so etwas möglich sein ( noch nicht getestet)

==> An einer besseren Veriante wäre auch ich interessiert.

mfg

Reinhold Weinzierl
  Mit Zitat antworten Zitat