unmanaged DLL

20/04/2009 - 23:13 von Thomas Bendrich | Report spam
Hallo NG,

ich habe folgendes Problem:

aus einer àlteren Anwendung existieren DLLs, die jetzt in einem C# Projekt
genutzt werden sollen. Diese DLLs enthalten Klassen, Strukturen und globale
Variablen, die dort exportiert werden. Wie ich z.B. Betriebssystem-Funktionen
nutzen kann ist mir bekannt. Mir ist es jedoch nicht gelungen, eine Klasse
oder Struktur aus einer DLL in C# verfügbar zu machen. Die Header- und
Implementierungs-Dateien sind glücklicherweise noch vorhanden. Es wàre schön,
wenn wir die DLLs ohne sie portieren zu müssen nutzen könnten. Die DLLs
wurden ursprünglich in C++ geschrieben mit Visual C++ 6.0.

Vielen Dank

Thomas
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
20/04/2009 - 23:34 | Warnen spam
"Thomas Bendrich" schrieb:
aus einer àlteren Anwendung existieren DLLs, die jetzt in einem C# Projekt
genutzt werden sollen. Diese DLLs enthalten Klassen, Strukturen und
globale
Variablen, die dort exportiert werden. Wie ich z.B.
Betriebssystem-Funktionen
nutzen kann ist mir bekannt. Mir ist es jedoch nicht gelungen, eine Klasse
oder Struktur aus einer DLL in C# verfügbar zu machen. Die Header- und
Implementierungs-Dateien sind glücklicherweise noch vorhanden. Es wàre
schön,
wenn wir die DLLs ohne sie portieren zu müssen nutzen könnten. Die DLLs
wurden ursprünglich in C++ geschrieben mit Visual C++ 6.0.



Am Einfachsten (bei entsprechenden Vorkenntnissen) dürfte es wohl sein,
mittels C++/CLI eine verwaltete Hülle um die unverwaltete Schnittstelle zu
legen und anschließend die DLL darüber von C# aus anzusprechen.

In einfachen Fàllen könnte 'DllImportAttribute' ausreichen.

Zugriff über COM Interpp wàre evtl. auch möglich, falls es sich um eine
COM/ActiveX-DLL handelt.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen