Fehlender Konstruktor in einer lib
-
Hi,
ich habe ein großes Problem mit einer unter Visual Studio 2005 in C++ selbst erstellten lib.
Das Erstellen der lib funktioniert einwandfrei. Das Einbinden in ein neues Projekt
ist auch kein Problem. Wenn ich nun ein Object einer Klasse aus der lib erstelle, dann geht es nur gut, wenn ich den DefaultKonstruktor nehme.
Wenn ich nun aber in der Klasse, welche später in der lib steht,
einen Konstruktor mit Parameterliste erstelle, und diesen im anderen Projekt aufrufe, dann bekomme ich einen Linkerfehler(LNK 2019) auf diesen Konstruktoraufruf: unresolved external symbol...Bei einer anderen lib hatte ich genau das selbe Problem. Dort habe ich mit einem Tool die lib entpackt und nachgeschaut, ob der Konstruktor drin steht. Die Konstruktoren waren aber nicht zu finden! Die Methoden schon.
Woran kann das liegen, dass die Konstruktoren nicht in einer lib gespeichert werden??
Mfg
-
Hast du die Konstruktoren überhaupt in der C++ Datei angelegt?
(wenn die Klasse keinen eigenen Ctor hat, erzeugt dir der Compiler einen Default-Ctor - und sorgt auch dafür, daß er erreichbar ist - wenn die Klasse einen eigenen Ctor hat, mußt du ihn auch selber definieren)
-
Ja, die sind drin.
Ich habe einen default Konstruktor und einen Konstruktor mit einem wchar_t * Parameter.
Sie sind ganz normal, wie bei jedem anderen C++ Projekt angelegt.
Wenn ich für die Klasse der lib eine Testfunktion erstelle, (also keine lib, sondern eine exe in diesem Projekt) und dort den Konstruktor aufrufe, dann funktioniert alles perfekt.
-
Möglicherweise ist in einem Projekt wchar_t ein eingebauter Typ, und in dem anderen ein typedef auf unsigned short. Das kannst du in den Projekteinstellungen prüfen.
-
Ja, ich glaube daran liegt es.
Ich habe mich schon gewundert, warum er immer folgendes bringt, obwohl ich ja wchar_t habe:
...CLic::CLic(unsigned short const *)" (??0CLicBDR@@QAE@PBG@Z)...Ich werde es mal genau durchtesten.
Danke für eure Hilfe!

Mfg