wxWidgets installieren
-
Dann musst du den Compiler noch einrichten...
-
*heul* wie?
-
Keine Ahnung.
Findet C::B den nicht?
Schau mal unter Compiler.
Evtl. musst du den richtigen Pfad noch einrichten.
Oder einfach mal selber googlen.
-
hm...
ich hab den gcc jetzt zum laufen gebracht
Konsolenanwendungen gehn
allerdings hab ich den Nightly nicht mehr. Ich hab mir die Version noch mal runtergeladen und die dateien ersetzt, aber danach lässt sich CB nicht mehr ausführen
-
Du solltest deine Probleme etwas genauer beschreiben.
-
juhu, der Nightly funktioniert, hab nur ne .dll vergessen
hab dann die Stepps für die wxWidgets noch gemacht und hat funktioniert, jedenfalls teilweise
Es ließ sich diesmal Compilieren und ausführen, doch das ausgeführte
Programm war ein ganz anderes als das im Quellcodebase.h
#ifndef BASIC_H #define BASIC_H class HalloWeltApp : public wxApp { public: virtual bool OnInit(); }; class BasicFrame : public : wxFrame { public: BasicFrame(const wxChar* title, int xpos, int ypos, int weight, int height); ~BasicFrame(); }; #endif
base.cpp
#include <wx/wx.h> #include "base.h" IMPLEMENT_APP(HalloWeltApp) bool HalloWeltApp::OnInit() { BasicFrame *frame = new BasicFrame(wxT"Hallo Welt", 50, 50, 450, 300); frame->Show(TRUE); SetTopWindow(frame); return TRUE; } BasicFrame::BasicFrame(const wxChar *title, int xpos, int ypos, int width, int height):wxFrame ((wxFrame *)NULL, -1, wxPoint(xpos, ypos) wxSize(width, height)) {} BasicFrame::~BasicFrame(){}
ist das erste Programm aus "C++ von A bis Z" im GUI bereich.
Das Ausführbare Programm ist dann ein Fenster mit Menü und nirgends "Hallo Welt"
Ich hoffe mein Problem ist damit genauer erklärt
-
Hm, von dem Buch hab ich bisher nix gutes gehört.
Diesmal ist der Fehler jedoch offensichtlich:
Der Titel des Fensters wird nirgendswo hin weiter geleitet.
Bei BasicFrame müsste der Konstruktor so modifiziert werden:
BasicFrame::BasicFrame(const wxChar *title, int xpos, int ypos, int width, int height):wxFrame ((wxFrame *)NULL, -1, /* Hier wurde die Weitergabe des Fenstertitels offenbar vergessen... */ title, wxPoint(xpos, ypos) wxSize(width, height)) {}
Siehe wxFrame Konstruktor:
http://wxwidgets.org/manuals/stable/wx_wxframe.html#wxframectorHab ich dich eigentlich schon auf die wxWidgets tutorials im Artikel Forum hingewiesen?
phlox
-
phlox81 schrieb:
Hm, von dem Buch hab ich bisher nix gutes gehört.
Inwiefern denn, ich war bisher eigentlich ganz zufrieden damit
phlox81 schrieb:
Hab ich dich eigentlich schon auf die wxWidgets tutorials im Artikel Forum hingewiesen?
Nee
phlox81 schrieb:
Der Titel des Fensters wird nirgendswo hin weiter geleitet.
Bei BasicFrame müsste der Konstruktor so modifiziert werden:
C/C++ Code:BasicFrame::BasicFrame(const wxChar *title, int xpos, int ypos, int width, int height):wxFrame ((wxFrame *)NULL, -1, /* Hier wurde die Weitergabe des Fenstertitels offenbar vergessen... */ title, wxPoint(xpos, ypos) wxSize(width, height)) {}
Siehe wxFrame Konstruktor:
http://wxwidgets.org/manuals/stable/wx_wxframe.html#wxframectordanke, aber ich glaub der Fehler liegt woanders dran
selbst wenn ich Fehler im Code einbaue und neu Compiliere sagt er "Nothing to be done".
Und im Projektordner sind zwei dateien, die da gar nicht hingehören:
<Projektname>App.cpp
<Projektname>App.h
und diese datein werden Compiliert und da steht der Code für das Programm, welches nicht kommen soll. Wie kann ich dem Compiler mitteilen, das die anderen dateien compiliert werden sollen
-
So schlecht ist das Buch nun auch nicht. Allerdings sollte man den Code schon richtig abtippen, damit er auch kompiliert. Wenn er das per C&P aus seiner IDE gepostet hat, sehe ich beim überfliegen schon zwei Fehler. Unteranderem den besagten "title"(der im Buch vorhanden ist!) den du richtigerweise eingefügt hast.
-
oh ja, der title steht im Buch, da hab ich falsch abgetippt, aber sonst hab ich keinen gefunden(hab mit dem Buch grad noch mal verglichen)
-
michme schrieb:
So schlecht ist das Buch nun auch nicht. Allerdings sollte man den Code schon richtig abtippen, damit er auch kompiliert. Wenn er das per C&P aus seiner IDE gepostet hat, sehe ich beim überfliegen schon zwei Fehler. Unteranderem den besagten "title"(der im Buch vorhanden ist!) den du richtigerweise eingefügt hast.
Naja ich dachte, er hätte sich kleverer Weise die Beispiele von der CD gesaugt.
Die Tutorials findest du hier:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-159232.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-175682.html
-
wieso kleverer Weise, wenn man abschreibt bleibt wenigstens noch was sitzen, nich so wie bei copy&paste
natülich hab ich den text in den letzten tagen nicht immer wieder neu abgeschrieben
die beiden Artikel sahen vielversprechend aus, hab sie eben nur überflogen, werd sie mir aber noch in ruhe durchlesen
aber wie kann ich mein Problem mit den falschen datein lösen?
-
Wenn du mit C::B ein wxWidgetsprojekt startest, werden diese Dateien angelegt.
Eigentlich ist das nichts anderes als dein Beispiel aus dem Buch, nur das die App und die Frame Klasse in 2 Dateien getrennt sind.
-
In base.h im ctor der vorletzte Parameter weight -> width
und
in base.cpp in "bool HalloWeltApp::OnInit" wird der Titelstring zusätzlich in Klammern gesetzt, also "wxT("...")
-
hm, da hab mich wohl wieder verlesen, ist beides im Buch drin
-
Ah, ich hab auch noch zwei fehler gefunden
class BasicFrame : public : wxFrame
der zweite Doppelpunkt gehört da nicht hin
wxPoint(xpos, ypos)
nach ) Komma vergessen
-
Ihr werdets mir wahrscheinlich nicht glauben aber ich habs geschaft
Hat ja nun auch lange genug gedauert
Ein riesen Dank an alle die mir geholfen haben, ich will garnicht daran denken, wie lange es gedauert hätte ohne eure hilfeWoran lags:
-Bei den ganzen Steps um ein neues wxWidget zu erstellen hab ich die Checkbox "Create Emptie Projekt"(oder so ähnlich) übersehn,
-und beim erstellen einer neuen Quelldatei, bzw Headerdatei die Checkboxen "Debug" und "Release" nicht angehaktDamit wäre dieser Thread wahrscheinlich beendet
Eine frohe Weihnachtszeit wünsch ich euch