Einfaches Fenster anzeigen
-
Möchte einen Code bespiel aus dem Buch Compilieren. Das Buch sagt das man dazu die drei Headerdateien (Graph.h,Window.h und GUI.h) hinzufügen und die Dateien Graph.cpp und Window.cpp auch hinzufügen soll was ich auch gemacht habe. Das Programm soll nur ein einfaches Fenster darstellen und nichts anderes, doch der Compiler sagt es gibt 4 Fehler: Fehler:
Fehler 5 error C2955: "Vector": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
Fehler 24 error C2955: "Vector": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
Fehler 17 error C2084: Funktion 'Point Graph_lib::Circle::center(void) const' hat bereits einen Funktionsrumpf
Fehler 16 error C2084: Funktion 'Graph_lib::Circle::Circle(Point,int)' hat bereits einen FunktionsrumpfDer Programm Code:
#include "Graph.h" #include "Window.h" #include "GUI.h" int main() { using namespace Graph_lib; Point tl(100,100); Window win(tl,600,400,"Mein Fenster"); }
-
Wenn du sagst, du hast Graph.cpp und Window.cpp hinzugefügt, was hast du genau gemacht?
-
Habe eine Projekt gemacht ohne vorkompilierte Headerdateien. Dann wurden die 3 Header zu den Headerdateien hinzugefügt und die zwei cpp Dateien zu den Quelldateien. Habe dann bei dem Quelldateien ein neue cpp Datei gemacht wo ich dann den Code geschrieben habe. Und das Buch verlangte das man die FLTK-Bibliotheken auch installieren muss, was ich auch gemacht habe und mit dem Test Code im Buch ausprobiert habe ob alles Funktioniert. Der FLTK Test war erfolgreich der Test Code lies sich ohne Probleme Compilieren.
-
winux schrieb:
Fehler 5 error C2955: "Vector": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
Fehler 24 error C2955: "Vector": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
Fehler 17 error C2084: Funktion 'Point Graph_lib::Circle::center(void) const' hat bereits einen Funktionsrumpf
Fehler 16 error C2084: Funktion 'Graph_lib::Circle::Circle(Point,int)' hat bereits einen FunktionsrumpfWelcher Compiler gibt denn Fehlermeldungen ohne Zeilennummer und Datei aus?
-
Mein Fehler, habe die Datei und Zeilennummer nicht angegeben.
Fehler 5 error C2955: "Vector": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich. Datei: graph.h Zeile: 141 Fehler 26 error C2955: "Vector": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich. Datei: graph.h Zeile: 141 Fehler 19 error C2084: Funktion 'Point Graph_lib::Circle::center(void) const' hat bereits einen Funktionsrumpf Datei: graph.cpp Zeile: 245 Fehler 18 error C2084: Funktion 'Graph_lib::Circle::Circle(Point,int)' hat bereits einen Funktionsrumpf Datei: graph.cpp Zeile: 237
-
Du benutzt VisualStudio 2010? Da scheint es Probleme mit dem Code zu geben, siehe auch hier: http://www.stroustrup.com/Programming
Vielleicht geht's mit 2008 besser.
-
OK habe auf dem anderen Rechner Visual Studio 2008 drauf, hoffe das es mit dem geht.
-
Habe FLTK neu bei Visual Studio 2008 neuinstalliert. Doch jetzt komme ich einfach bei dieser Aufgabe nicht weiter. Die Aufgabe lautet: Erzeugen Sie ein leeres Simple_window-Fenster der Größe 600x400 und dem Titel "Mein Fenster". Kompilieren und linken Sie das Programm und führen Sie es aus. Beachten Sie, dass dazu die FLTK-Bibliothek wie in Anhang D beschrieben linken müssen. (Wurde auch gemacht) Des Weiteren müssen Sie die Headerdateien Graph.h, Window.h und GUI.h in Ihren Code einkopieren und Sie müssen dem Projekt die Dateien Graph.cpp und Window.cpp hinzufügen. (Was auch geamcht wurde)
#include "stdafx.h" #include "Graph.h" #include "Window.h" #include "GUI.h" int main() { using namespace Graph_lib; Point tl(100,100); Simple_window win(tl,600,400,"Mein Fenster"); win.wait_for_button(); return 0; }
Doch der Compiler sagt das folgende Bezeichner nicht gefunden werden: Simple_window und win
Aber dieser Code geht:
int main() { using namespace Graph_lib; Point tl(100,100); Window (tl,600,400,"Mein Fenster"); return 0; }
-
Lass mich raten: Dir fehlt im ersten Beispiel ein
#include "Simple_window.h" // oder SimpleWindow.h
Edit: Hab's jetzt auch gefunden.
-
Habe diese Header auch hinzugefügt, doch es gibt weiter Probleme:
Fehler 9 error LNK2001: Nicht aufgelöstes externes Symbol ""public: __thiscall Simple_window::Simple_window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Simple_window@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)". Kapitel12Aufgabe.obj Fehler 10 fatal error LNK1120: 1 nicht aufgelöste externe Verweise. C:\Users\CMTest\Documents\Visual Studio 2008\Projects\Kapitel12Aufgabe\Debug\Kapitel12Aufgabe.exe
Obwohl unter Zusätzliche Abhängigkeit hinzugefügt habe:
fltkd.lib wsock32.lib comctl32.lib fltkjpegd.lib fltkimagesd.lib
-
Du hast doch auch die cpp-Dateien, die du deinem Projekt hinzufügen kannst.
winux schrieb:
... die Dateien Graph.cpp und Window.cpp auch hinzufügen soll was ich auch gemacht habe
Und dann natürlich noch Simple_window.cpp.
-
Simple_window.h und Simple_window.cpp sind im Projekt drin, doch leider bleiben die zwei Fehler Meldungen. Aber irgendetwas muss noch gelinkt werden nur eben das weiß ich nicht.
-
Hat sich erledigt musste nur noch GUI.cpp ins Projekt einkopieren und jetzt geht alles.