DLL in C++

Marschal

Großer Enumerator
Nen Abend aller seits.

Ich bin im Rahmen eines Projekts auf eine Hürde gestoßen. Wie ich schätze eher die kleinere, dennoch macht sie mir zu schaffen:)

Nämlich: Ich benötige für mein C++ Projekt (Ob MFC oder Konsole ist ers einmal egal) eine Dynamische Library.
Mein Problem liegt in der Benutzung dieser DLL. Ich habe nur das .dll file und sonst (außer ein paar VB un C# Beispielen) nichts.

Also muss ich irgendwie auf die Funktionen und den Namespace zugreifen können.
Ich habe nun vieles Ausprobiert, doch bisher ohne Erfolg.

Wie ann ich die DLL verwenden? Bin für jeden Rat dankbar.

Randinformationen:
MS Visual Studio 2008 (64bit)
Windows 7 Pro 64bit

MfG Marschal
 
Willst du eine Funktion in der DLL ansprechen?

Ich hab mich lang nicht mehr mit C++ rumgeschlagen, aber auf die schnelle hab ich mal folgendes gefunden LINK.

Auf die schnelle sah es ganz brauchbar, hab aber nur mal den Artikel grob überflogen.
 
Hi,

erst mal danke für die Antworten. Wie man eine Funktion benutzt weis ich, aber ich würde gerne den kompletten Funktionsumfang nutzen.

Ich benutze eine managed DLL. Geladen von HIER

in C# benutzen die einfach
C++:
#include ...

using WiimoteLib;

...
Ich habe auch schon versucht die DLL in ein Handle (HINSTANCE) zu laden, doch erhalte ich immer NULL.
Ich habe schon einige Ansätze probiert. Bisher konnten mir Google und MSDN nicht grosartig helfen:/

Danke im voraus, Marschal

EDIT: @scipio: In dem Tutorial benutzuen die Header-Dateien. Ich habe eben nur die DLL und auser einer Docu in chm Fromat (Hilfe-Datei). Ich habe mit dem Programm DLL2Lib noch eine lib Datei aus der DLL erstellt, weis aber nicht obs mir was bringt.

EDIT2: Habe den Quelltext der DLL bei Codeplex gefunden. Hat aber bisher noch nicht geklappt den zu kompilieren. Wenn ich das hinkriege, dan müsste ich ja auch irgendwo bei MS Visual Studio einstellen können, dann ich header und lib Dateien dazu brauche.

EDIT3: Nebenbei, hab jetzt festgestellt, dass der Quelltext der DLL auch in C# bzw. VB vorliegt:/ Ich bräuchte nun gerne C++...:/
 
Zuletzt bearbeitet von einem Moderator:
In Visual C++ müsste das auch über
Code:
#pragma comment (linker, "diedll.dll")
gehen, oder?:confused:
Eine Lib kann man mit
Code:
#pragma comment (lib, "dielib.lib")
linken, da bin ich mir sicher...
Hoffe ich konnte helfen.
LG
Daniel
 
Ja, die pragma-Variante bewirkt das gleiche wie ein Eintrag in den Projekteinstellungen
Führt bei größeren Projekten aber leicht zur Unübersichtlichkeit, wenn jede Datei irgendwelche Bibliotheken einbindet.
 
Die Variante mit dem CLR-Projekt hat geklappt. Hatte mich nahmlich gewundert, warum ich keine dll linken kann, wenn Ich ein normales win32 projekt anlege.

Bei mir tut sich die Frage auf was eigentlich ein CLR Projekt ist nd der Unterschied zu einen win32.

Könnte ich die pragma comment Variante auch in einem normalen win32 Projekt verwenden und Dan die Funktion über den namespace erhalten?

Danke in voraus.

MfG Marschal
 
Die Variante mit dem CLR-Projekt hat geklappt. Hatte mich nahmlich gewundert, warum ich keine dll linken kann, wenn Ich ein normales win32 projekt anlege.

Bei mir tut sich die Frage auf was eigentlich ein CLR Projekt ist nd der Unterschied zu einen win32.
Stichworte: CLR, .NET, managed, unmanaged, C++/CLI :suchen:
Könnte ich die pragma comment Variante auch in einem normalen win32 Projekt verwenden und Dan die Funktion über den namespace erhalten?
Nein, da es sich bei der DLL um eine managed DLL (benötigt CLR Unterstützung) handelt muss das Projekt auch CLR Unterstützung verwenden.

Gruß
 
Zurück