wxWidgets installieren


  • Mod

    Dann musst du den Compiler noch einrichten...



  • *heul* wie?


  • Mod

    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 😕


  • Mod

    Du solltest deine Probleme etwas genauer beschreiben.

    http://forums.codeblocks.org/index.php/topic,3232.0.html



  • 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 Quellcode

    base.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


  • Mod

    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#wxframector

    Hab 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#wxframector

    danke, 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)


  • Mod

    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?


  • Mod

    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 hilfe

    Woran 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 angehakt

    Damit wäre dieser Thread wahrscheinlich beendet 🙂

    Eine frohe Weihnachtszeit wünsch ich euch


Anmelden zum Antworten