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