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 xafford „Wie hast Du die Funktionen aus der DLL aufgerufen? Versuch es mal mit using...“
Optionen
Wie hast Du die Funktionen aus der DLL aufgerufen?
So (es ist genau genommen nur eine Funktion):
ChangeDcePwAdminClass DceObject = new ChangeDcePwAdminClass();
DceObject.ChangeDcePwAdminBSTR(m_strConnectionString, m_strUser, m_strPW, m_strUserToChange, strNewPW);
string ret = DceObject.ChangeDcePwAdminStatusBSTR;

und nicht vergessen:

[DllImport("hier_deine.dll")]
public static extern hier_die_Deklaration_der_zu_verwendenden_Funktion

Soviel ich weiss, muss man das bei COM nicht so machen, sondern nur bei "normalen" unmanaged dll's. Oder liege ich da falsch?
Wie gesagt, Kompilieren und Ausführen ging einwandfrei, bis auf die Tatsache eben, dass das Passwort nicht wie erwünscht zurückgesetzt wird.
bei Antwort benachrichtigen