DLL Erzeugen und Einbinden (Problem bei VS2008 EE, C++)
-
Hallo,
ich habe eine Frage bezüglich der Erstellung/Einbindung einer DLL mit C++. Habe schon einige Beiträge dazu gefunden, aber mein Problem wird nie näher erläutert, da ich speziell bei Visual Studio hängen bleibe. Ich nutze VS 2008 Express Edition, habe aber parallel noch VS 2005 installiert.
Ich möchte gerne eine DLL erzeugen und diese in einem Programm einbinden. Dazu nutze ich das Beispiel von der MSDN:
http://msdn.microsoft.com/de-de/library/ms235636(VS.80).aspx
Hier wird eine simple DLL (inklusive Header-File) erzeugt die einfache Rechenoperationen durchführt (+, -, *, /). In einem Hauptprogramm werden diese Funktionen aufgerufen.Die DLL kann ich erzeugen, das klappt wunderbar, aber beim Hauptprogramm bleibe ich hängen. Da erhalte ich folgenden Fehler:
1>MyExecRefsDll.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: static double __cdecl MathFuncs::MyMathFuncs::Divide(double,double)" (?Divide@MyMathFuncs@MathFuncs@@SANNN@Z)" in Funktion "_main".
Den Fehler bekomme ich für alle vorhanden Funktionen der DLL: Divide, Multiply, Subtract, AddLaut der MSDN-Kurzanleitung (siehe Aufzählungspunkt 2 und 3) muss ich noch einen „Verweis“ hinzufügen. Dazu soll man ins folgende Menü:
Projekteigenschaften-->Allgemeine Eigenschaften-->Verweise-->Neuen Verweis hinzufügen
Im nun offenen Menüfenster „Verweis hinzufügen“ sollen alle Bibliotheken zu sehen sein, die man verweisen kann, aber bei mir ist das Fenster immer leer.
Bei allen anderen Beispielen im Internet wird nirgends so eine DLL-Zuweisung erläutert, daher denke ich immer es reicht wenn man die DLL in den Stammordner kopiert und das Programm startet.
Was mache ich Falsch?Danke!
MFGZusatz:
Der Menüpunkt „Verweise“ heisst bei mir in VS2005 und VS2008EE „Framework und Verweise“, aber ich denke das hat nichts zu sagen.
-
ok, ich habe eine Lösung gefunden:
Ich kann immernoch die DLL nicht in Visual Studio einbinden, das Menüfenster ist schlichtweg leer. Alternativ kann man es aber auch im Programm direkt machen. Der Code dazu ist
#pragma comment(lib,"MathFuncsDll.lib")
Man muss es in der main.c noch hinzufügen.
MFG