FLTK InBox get_string() problem
-
Guten tag ich habe ein Problem wenn ich von einer TextBox was in einer int Variable einlese geht es perfeckt ...
in meinem Buch steht allerdings das man z.b.
string st = Text_box.get_string();
machen kann...
// int st = Text_box.get_int(); funktioniert perfecktWenn ich es allerdings im String einlese dann geht es nicht es kommt ein LINK fehler:
kapitel.16.5².obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall Graph_lib::In_box::get_string(void)" (?get_string@In_box@Graph_lib@@QAE?AV?char_traits@D@std@@V?$allocator@D@2@@std@@XZ)" in Funktion ""private: void __thiscall Lines_window::next(void)" (?next@Lines_window@@AAEXXZ)".
kapitel.16.5².exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.achja was ich noch erwähnen sollte ist, das alles von meinem C++ Buch kommt
"Einführung in die Programmierung mit C++" von Bjarne StroustrupDort steht auch das es so funktionieren müsste

Ich kann auch den kompletten FLTK-Code hier reinstellen falls es was hilft
-
du hast vergessen den header <string> einzubinden
das ist übrigens kein standard c++vario-500
-
ne an string liegt es nicht die war auchschon definiert:
hier mal alle Header-Dateien die ich drin habe:// // Dieser Beispielcode stammt aus Kapitel 16.5 "Ein Beispiel" des Buches // "Einführung in die Programmierung mit C++" von Bjarne Stroustrup // #include <iostream> #include <stdio.h> #include <window.h> #include <sstream> #include <string> #include "Graph.h" // für den Zugriff auf unsere Grafik-Bibliothek #include "GUI.h" #include "Window.h" using namespace Graph_lib; using namespace std;
-
Schau mal ob Graph_lib::In_box::get_string(void) definiert ist. Wenn ich die Fehlermeldung richtig interpretiere scheint dies wohl nicht "ausprogrammiert" zu sein.
-
GLib schrieb:
Schau mal ob Graph_lib::In_box::get_string(void) definiert ist. Wenn ich die Fehlermeldung richtig interpretiere scheint dies wohl nicht "ausprogrammiert" zu sein.
Dies oder du hast eine Bibliothek nicht gelinkt. Ich kenne von dem Buch nur die Leseproben, weiß aber, dass dort durchaus auch eigene Bibliotheken, die beim Buch dabei sind, benutzt werden. Da die hier fehlenden Funktonen erst einmal kein Standard-C++ sind und die Namen auch nicht unbedingt so klingen, als hätte der Threadersteller sie selber programmiert, denke ich mal, dass die aus einer dieser Bibliotheken stammen. Wie man die gängigen IDEs passend einrichtet, damit sie diese Bibliotheken richtig nutzen sollte mWn aber auch irgendwo im Buch stehen.
-
GLib schrieb:
Schau mal ob Graph_lib::In_box::get_string(void) definiert ist. Wenn ich die Fehlermeldung richtig interpretiere scheint dies wohl nicht "ausprogrammiert" zu sein.
das habe ich auchschon vermutet ist aber drin ...
hier code snippsel:
in GUI.h struct In_box : Widget { In_box(Point xy, int w, int h, const string& s) :Widget(xy,w,h,s,0) { } string get_string(); int get_int(); void attach(Window& win); }; aber in der GUI.cpp ist get_int aber genauer definiert.. die get_string aber nicht! int In_box::get_int()//hier müsste meines wissens nach das einfach nur gemacht //werden wenn man buchstaben eingibt das er -999999 ausgibt { Fl_Input& pi = reference_to<Fl_Input>(pw); // liefere atoi(pi.value()); zurück const char* p = pi.value(); if (!isdigit(p[0])) return -999999; return atoi(p); }
-
Liegt das auch im Namespace Graph_lib?
-
Tibolus_ schrieb:
aber in der GUI.cpp
ist get_int aber genauer definiert..
die get_string aber nicht!Genau das meinte ich mit "ausprogrammiert". Nun weiß der Compiler zwar das es eine Memberfunktion gibt mit dem Namen get_string(), aber die ist eben nicht im .cpp file definiert.
string In_box::get_string()
{
Fl_Input& pi = reference_to<Fl_Input>(pw);
return string(pi.value());
}Dies müsste in GUI.cpp zu finden sein. Falls nicht dann ist das der Grund für die Fehlermeldung.
-
GLib schrieb:
Tibolus_ schrieb:
aber in der GUI.cpp
ist get_int aber genauer definiert..
die get_string aber nicht!Genau das meinte ich mit "ausprogrammiert". Nun weiß der Compiler zwar das es eine Memberfunktion gibt mit dem Namen get_string(), aber die ist eben nicht im .cpp file definiert.
string In_box::get_string()
{
Fl_Input& pi = reference_to<Fl_Input>(pw);
return string(pi.value());
}Dies müsste in GUI.cpp zu finden sein. Falls nicht dann ist das der Grund für die Fehlermeldung.
Ohh mein gott ^^
es geht
vielen dank :DD
damit kann das thema geschlossen werden ^^
danke nochmal