Laden...

C++- bzw. COM-DLL importieren

Erstellt von Matthew Gee vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.344 Views
Thema geschlossen
M
Matthew Gee Themenstarter:in
1 Beiträge seit 2013
vor 11 Jahren
C++- bzw. COM-DLL importieren

Hallo ich hoffe ihr könnt mir helfen,

ich setze mich seit etwa 2 Monaten mit C# auseinander und stehe nun vor einem Problem mit einer externen DLL-Bibliothek. Es handelt sich um ein in C++ entwickeltes SDK, dessen Bibliotheken ich nutzen möchte. Der Quellcode liegt vor und kann auch mit Visual Studio kompiliert und hinterher ausgeführt werden. Will ich aber nach dem kompilieren aus meinem Projekt auf eine der im SDK befindlichen Bibliotheken verweisen, bzw diese verwenden, bekomme ich eine Fehlermeldung von VS um die Ohren. > Fehlermeldung:

Es konnte kein Verweis auf "Pfad/zur/DLL" hinugefügt werden. Stellen sie sicher, dass auf die Datei zugegriffen werden kann und dass sie eine gültige Assembly oder Com-Komponente ist

Ok, nach etwas Recherche fand ich heraus, dass es darum geht nicht verwalteten Code einzubinden. Da gibt es nun verschiedene Möglichkeiten, die ich mir auch schon angeschaut habe. Wo ist nun das Problem?

Mich macht stutzig, dass ich in diesem Beitrag im User-Forum zu diesem SDK gelesen habe, das jmd die Bibliothek importiert hat. Kann es sein, dass ich irgend etwas falsch mache? Oder gibt es noch andere Möglichkeiten Bibliotheken einzubinden, außer über Projekt/Verweise.

Weiterhin gibt es eine comapi, aus deren Namen ich entnehmen will, dass es sich um eine Api handelt, mit der ich daraus eine Com-Komponente erzeugen kann. Vll. kann mich da jmd korrigieren/erhellen, ich denke ihr erfahrenen C#-Entwickler seht das mit einem kurzen Blick.

Viele Grüße, und Danke im Voraus!

S
248 Beiträge seit 2008
vor 11 Jahren

Hallo Matthew Gee,

du kannst in .NET nur auf .NET- oder COM-Assemblies verweisen.
Native DLLs musst du (manuell) importieren.

Der Artikel Calling Win32 DLLs in C# with P/Invoke beschreibt die Basics. Ansonsten würde ich nach ".net import native dll" googlen, da sollte es genug Beispiele geben.

Grüße

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo Matthew Gee,

für echte C++-DLLs braucht man typischerweise einen Wrapper. Aber das Thema Einbinden von DLLs, egal welcher Art, gehört nicht nur zu den Grundlagen, sondern das wurde im Forum und im Netz schon bis zum abwinken besprochen. Bitte suche selber.

herbivore

Thema geschlossen