Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

C DLL aus C# .NET Applikation aufrufen

Yves3 / 7 Antworten / Flachansicht Nickles

Hallo,

Ich habe eine alte, in C geschriebene COM DLL, die ich von meiner ASP.NET Webapplikation aus aufrufen muss.
Mein erster Versuch war folgender:
- DLL mit regsvr32 registrieren
- Bei Visual Studio.NET über ADD Reference einbinden (Visual Studio kümmert sich angeblich automatisch um den ganze Managed<->unmanaged Kram)
- Funktionen aus der DLL aufrufen

Ist irgendwie zu einfach, um funktionieren zu können, nicht? ;)
Ich konnte es problemlos kompilieren, es lief "exeptionfrei" durch, gab aber immer null zurück und machte schlicht nicht das was es sollte (nämlich gar nichts).

In einem zweiten Versuch machte ich es dann so wie hier beschrieben:
http://www.aspheute.com/english/20000828.asp
Das Resultat war genau das gleiche wie bei Versuch 1.

Wird die DLL auf dem selben Computer und mit den selben Parametern von einem VB-Script aufgerufen, so funktioniert es.

Any Ideas?

bei Antwort benachrichtigen
Yves3 PaoloP „Hallo, Ist die DLL ein einfaches COM-Object oder Active-X ? Gruß PP...“
Optionen

So, Problem gelöst.
Ich habe heute den ganzen Tag an dem Ding rumgebastelt. Zuerst hatte die Idee, noch eine reine C-Dll dazwischen zu schalten, die ich dann vom managed Code aus aufrufen kann. Da ich vorher noch nie aus reinem C eine COM DLL verwendet hatte, brauchte ich ziemlich lange, bis es schliesslich lief.
Seltsamerweise hatte ich dort genau das gleiche Problem, wie bei meinen vorigen Versuchen, und konnte wieder von vorne anfangen. Glücklicherweise erhielt ich dann doch noch den Code für das Teufelsding.
Darauf habe ich gleich all den COM-Mist gelöscht und eine reine C-DLL erstellt, die die benötigte Funktion exportiert. Die rufe ich jetzt so aus der managed-Umgebung auf, wie von xafford beschrieben.

... und das klappt ENDLICH :)

bei Antwort benachrichtigen