Com programmieren

MichiStroi

Erfahrenes Mitglied
Hi!

Ich habe eine *.dll, eine *.h und eine *.lib Datei.
Das ganze ist ein Software-Hardware Interface, läßt sich in C# aber nur durch die Dll.Import Funktion sehr unstabil integrieren.

Die Lösung hab ich von einem Professor, er meinte es ist zwar eine einfache Möglichkeit, aber nicht die elleganteste. So weit ich mich errinnern kann meinte er, dass man daraus auch ein Com Interface machen kann. Aus der Header Datei, kenne ich sämtliche Funktionen und Datentypen der *.dll.
Leider kann ich ihn im Moment nicht erreichen, drum steh ich jetzt ziemlich verirrt da und Versuche mich in den scheinbar unendlichen Weiten von Com zu orientieren.

Kann mir bitte jemand ein bischen auf die Sprünge helfen. Es müsste sich hierbei ja eigentlich um ein Standartproblem handeln.

Vielen Dank
Michi
 
Hallo Michi,

Ist die Dll, die du verwenden möchtest COM-tauglich?

Wenn Ja:

Wenn du die dll als Com-Objekt einbinden möchtest, musst du sie vorher mit "regsvr32 <dllname.dll> " (z.B regsvr32 meinedll.dll ) in der registry registrieren. In der Regel beinhaltet die Dll eine Typelibrary, welche alle Interfaces enthält.

Nun kannst du in deinem C#- Projekt hergehen und unter "Verweis hinzufügen -> COM-Registerkarte auswählen" , den Namen der Typelibrary suchen und auswählen.

Das wärs soweit. Du kannst nun mit dem Namespace der eingebunden wurde deine Funktionen verwenden...

Ich hoffe es hat dir soweit weitergeholfen!

ps:
du kannst die dll auch wieder deregistrieren mit dem befehl "regsvr32 /u <dllname.dll>"
 
Hi,

Danke für deine Antwort.
Leider ist die DLL nicht COM tauglich. Wenn ich mich recht errinere meinte mein Prof. damals, dass ich das richtige COM dafür selbst schreiben muss. Aber mehr weiß ich auch noch nicht.

Grüße
Michi
 
Zurück