wxWidgets unter Windows



  • Hallo C++-Forum!

    Ich habe für mein mündliches Abitur nächste Woche ein Programm entwickelt das den A*-Pathfinding-Algorithmus zeigt. Unter meinem Ubuntu-Laptop funktioniert das auch ohne Probleme.

    Nun möchte ich das Programm aber gerne auch an Windows-Nutzer weitergeben (und hätte auch gerne einen Notfallplan, falls mein Linux-Laptop versagen sollte).

    "Kein Problem" - Dachte ich "wxWidgets läuft ja auf mehreren Plattformen".

    Also habe ich eine mobile CodeBlocks-Konfiguration genommen, die meine Klasse am Anfang des Schuljahres bekommen hat. Das Programm kompiliert, wenn ich es aber ausführen möchte, zeigt es solch ein hässliches Bild:

    http://www.Ur-bis-Knall.de/IMG/user/340Astar.PNG

    Das ganze wird zwar etwas besser wenn ich das Fenster neu Zeichne (minimieren und maximieren z.B.):

    http://www.Ur-bis-Knall.de/IMG/user/341astarnewpaint.PNG

    Aber dennoch fehlt z.B. die RadioBox oder die gesammte Karte (die mit DC's auf das Panel gezeichnet wird)

    Ein möglicher Fehler wäre es, dass ich unter Linux wxWidgets 2.8 benutzt habe, aber die mobile Windows-CodeBlocks-Version (von der Schule) 2.9 benutzt.
    Daher meine erste Frage:

    Kann das an den Unterschiedlichen Versionen liegen? Besitzt wxWidgets keine Abwärtskompatibilität?

    Wenn ich versuche wxWidgets und CodeBlocks auf meinem Windows-Rechner zu installieren finde ich nur Tutorials dazu, wie man sich den ganzen Spaß erstmal selbst kompiliert. (Gibt es WIRKLICH KEINE "fertige" Version von wxWidgets für Windows?)

    Wenn ich das mit dem selbst kompilieren versuche (Ich halte mich an diese Anleitung: http://www.pronix.de/pronix-1138.html) erscheint nach der Eingabe von diesem Befehl:

    mingw32-make.exe -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0

    (Ist das eigentlich richtig das Unicode auf 0 stehen muss?)

    Nach einer Weile die Fehlermeldung "ld.exe hat ein Problem festgestllt und muss beendet werden":
    http://www.Ur-bis-Knall.de/IMG/user/342ldexe.PNG

    Irgend etwas scheint also nicht zu funktionieren und dementsprechend kann ich leider nicht weitermachen.
    Woran könnte dieser Fehler liegen? Was kann ich machen das er behoben wird?

    Ich bedanke mich schon mal für eure Hilfe!

    Liebe Grüße

    Nijin



  • Es gibt eine fertige Version, die sich wxPack nennt. Wenn du eine Resource-Datei (irgendwas.rc) anlegst und in dieser Datei #include "wx.rc" schreibst, sollten deine Buttons schon mal schöner aussehen. Mehr weiß ich leider auch nicht. Bei UNICODE habe ich bei 2.8 zumindest Probleme bekommen, wenn ich es aktiviert habe und bei 2.9 ist der Unicode-Support soweit ich weiß sowieso vorhanden.



  • wxSkip schrieb:

    Es gibt eine fertige Version, die sich wxPack nennt. Wenn du eine Resource-Datei (irgendwas.rc) anlegst und in dieser Datei #include "wx.rc" schreibst, sollten deine Buttons schon mal schöner aussehen. Mehr weiß ich leider auch nicht. Bei UNICODE habe ich bei 2.8 zumindest Probleme bekommen, wenn ich es aktiviert habe und bei 2.9 ist der Unicode-Support soweit ich weiß sowieso vorhanden.

    Hallo wxSkip!

    Der Tipp mit wxPack war super! wxWidgets läuft jetzt auch auf meiner lokal installierten Version von CodeBlocks (nach einigem rumgepfusche in den Einstellungen)
    Die RadioButtonBox wird mitlerweile (nach einem manuellem neuzeichnem des Bildschirms) angezeigt. (Wenn auch nicht horizontal sortiert - er ragt darüber hinaus). Die Karte (mit dem DC's) aber leider noch nicht.
    Sprich: Es hat sich leider nicht viel verbessert....

    Wenn ich eine *.rc -Datei hinzufüge und "#include "wx.rc"" reinschreibt bekomme ich den Compiler-Fehler:

    fatal error: wx.rc: No such file or directory
    

    Danke für deine Hilfe!

    Nachtrag:
    Ich habe mittlerweile auch eine andere IDE installiert (CodeLite - mit eigener wxWidgets Version) - auch hier taucht das Problem mit der komischen Darstellung auf.

    Das Problem scheint also an meinem Code zu liegen...
    Das verwundert mich etwas, da wxWidgets ja eigentlich Plattform-übergreifend sein soll und ich eigentlich alle GUI-Aufgaben mit dem eingebautem Editor "zusammengeklickt" habe.

    Kennt jemand diese Probleme?



  • Probier's mal mit "wx/wx.rc". Oder such nach der Datei.



  • wxSkip schrieb:

    Probier's mal mit "wx/wx.rc". Oder such nach der Datei.

    Ach klar - auf die Idee hätte ich auch selber kommen können!
    (Die Datei war zu finden unter "wx/msw/wx.rc")

    Die Buttons haben jetzt diesen Win7-Look und nichtmehr den von Win98 - aber mein Hauptproblem (dass das Programm immernoch unbenutzbar ist, die DC's nicht rendert und auch nicht wirklich so reagiert wie unter Linux) ist leider noch nicht gelöst.

    Was wären denn die richtigen Schritte um sowas auf Windows zu porten? Ich habe mehr oder weniger nur die IDE eingerichtet und dann meine *.cpp und *.h Dateien eingefügt. Reicht das normalerweiße?



  • Nijin schrieb:

    Was wären denn die richtigen Schritte um sowas auf Windows zu porten? Ich habe mehr oder weniger nur die IDE eingerichtet und dann meine *.cpp und *.h Dateien eingefügt. Reicht das normalerweiße?

    So hätte ich das auch gemacht. Was ist denn die wxWidgets-Version in wxPack?



  • wxSkip schrieb:

    Nijin schrieb:

    Was wären denn die richtigen Schritte um sowas auf Windows zu porten? Ich habe mehr oder weniger nur die IDE eingerichtet und dann meine *.cpp und *.h Dateien eingefügt. Reicht das normalerweiße?

    So hätte ich das auch gemacht. Was ist denn die wxWidgets-Version in wxPack?

    wxPack benutzt 2.8. Die mobile Version (die wir von der Schule bekommen haben) verwendet 2.9.

    Das Problem tritt leider bei beiden auf 😕


Anmelden zum Antworten