eigene lib mit namespace in anderem Projekt
-
Ich habe eine Frage bezüglich Statischer Bibliotheken (.lib).
Ich benutze Visual Studio 2008 und habe ein Projekt, in dem ich einen Namespace Input erstellt habe. Das Projekt heißt ebenfalls Input und am Ende also auch Input.lib.
Diese möchte ich nun in einem anderen Projekt verwenden. Also die lib unter zusätzliche Abhängigkeiten wo auch schon die DX libs wunderbar funktionieren "d3dx9.lib d3d9.lib Input.lib". Die Input.lib befindet sich natürlich im Ordner mit dem neuen Projekt.
Wenn ich nun aber im Code folgendes machen möchte:using namespace Input;dann spuckt er folgenden Fehler aus:
error C2871: 'Input': Es ist kein Namespace mit diesem Namen vorhandenWenn ich mit dem Scopeoperator nachsehe, findet sich ganz natürlich std im Auswahlmenü, allerdings nicht mein Input.
Ich hoffe ihr könnt mir dabei helfen.
-
Oh Mann, ist heute Weltglaskugeltag???
Gibt es zu Deiner Library vielleicht ein .h File, welches Du vergessen hast, zu #includen?
-
Es gibt einen header und zwar GamePad.h.
Allerdings meldet er bei
#include <GamePad.h>
und
#include "GamePad.h"jeweils den den Error no such file or directory.
-
Dann gib das Verzeichnis eben deiner IDE bekannt.
Extras -> Optionen -> Projekte und Projektmappen -> VC++-Verzeichnisse
-
hat nichts geholfen. Die lib wird ja auch schon bei den zusätzlichen Abhängigkeiten eingetragen. Und es gibt keinen Fehler, das er die lib nicht finden würde. Er kann nur den namespace und die header daraus nicht finden.
-
Du musst den Header trotzdem separat bekannt machen.
-
In den Projekteigenschaften unter C/C++ -> Allgemein -> Zusätzliche Includeverzeichnisse
-
ah okay. super hat jetzt geklappt.
-
Oder wenn du die Bibliothek oft wiederverwendest und nicht in jedem einzelnen Projekt wieder neu angeben willst, mach es wie von mir oben beschrieben.
-
Nexus schrieb:
Dann gib das Verzeichnis eben deiner IDE bekannt....
Alternativ kann man meistens auch mit absoluten Pfadangaben arbeiten
#include <c:\meineHeader\somestuff\myHeader.h>Gruß,
Simon2.
-
Ja, ich finde es so allerdings komfortabler, da kann man auch den Pfad verschieben, ohne alle Dateien zu ändern:
#include <Library/Header.hpp>Zudem hast du bei dir den doppelten Backslash vergessen. Warum nimmst du nicht einfach Slash?
-
Das heißt im Endeffekt dann also das ich, falls ich die lib mal weitergeben will, immer die header mitgeben muss?
-
Astror Enales schrieb:
Das heißt im Endeffekt dann also das ich, falls ich die lib mal weitergeben will, immer die header mitgeben muss?
Ja. Ausser die Typen Informationen liegen in anderer Form z.B. als *.tlb File vor (COM).