Compiler und einfache GUI-Library unter LGPL?



  • Hallo,

    ich habe vor in die Programmierung von C++ einzusteigen. Es klingt jetzt
    vielleicht etwas merkwürdig, aber ich möchte mir die spätere Möglichkeit,
    einige meiner Anwendungen zu verkaufen, nicht verbauen. Als Anfänger würde
    ich mich jetzt nicht bezeichnen, ich habe vor einigen Jahren auf dem Amiga
    Assembler programmiert und dort neben der Hardwarenahen Programmierung
    auch recht viel mit mit auf Bibliotheken basierender GUI-Programmierung
    gemacht.
    Auf dem PC habe ich bereits mit LCC experimentiert und dort mit Hilfe der
    WinAPI auch schon Programme mit einfacher GUI geschrieben. LCC gefällt mir
    vom Konzept her schon sehr gut (typische IDE-Merkmale eben), aber leider
    scheinen mir die meisten der GUI-Bibliotheken eher für andere Umgebungen
    entwickelt worden zu sein (C++).
    Ich suche daher eine Bibliothek, mit der man nach kurzer Einarbeitungszeit
    Fenster, Texte im Fenster, Menüs, Schaltflächen und ähnliches "programmieren"
    kann. Ein Tool zum graphischen Erstellen ist dabei keine Pflicht, wenn die
    Bibliothek eine verständliche Syntax aufweist und ich eine GUI mit ein paar
    Zeilen Code schnell und effizient auch per Hand programmieren kann (ich
    stelle mir das in meinen naiven Träumen so vor, dass ich eine bestimmte
    Bibliotheksfunktion aufrufe, z.B.
    CreateWindow(XSize,YSize,Title,BGColor,Bordercolor,...)
    und die Bibliothek erstellt für mich das Fenster. Analog dazu sollten die
    anderen Elemente genau so einfach und unkompliziert zu programmieren sein.
    Bei mir steht die Einfachheit vor der Komplexität, d.h. ich brauche nicht
    hunderte von Knöpfen, Kombinationsfeld-Optionen und ähnliches, sondern
    einfach die Standard-GUI-Elemente im Windows-Look, die man in ganz
    gewöhnlichen Wald- und Wiesenprogrammen immer wieder sieht.

    Darf ich annehmen, dass eine GUI-Bibliothek auch die graphische Steuerung
    von elementaren Dateisystem-Operationen umfasst, also das Öffnen oder
    Speichern von Daten in Dateien, die man in einer Art Explorer-Fenster
    auswählt?

    Gibt es unter Windows(in erster Linie XP) eine Kombination aus IDE und
    GUI-Bibliothek unter LGPL, mit der einzelne und unabhängig lauffähige
    EXE-Dateien erstellt werden können und mit denen ich dann machen darf
    was mir gefällt? Kostenlos wäre natürlich spitze, da ich noch nichtmal
    weiß, ob ich später wirklich einige meiner Programme hinterher verkaufen
    kann, aber wenn der Preis eine einmalige Anschaffung darstellt und im
    vertretbaren Rahmen bleibt, würde ich auch Geld investieren. Ich habe
    nur keine Lust, in ein oder zwei Jahren wieder umlernen zu müssen, weil
    ich irgendwelche Lizenzbedingungen verletze oder für jedes verkaufte
    Programm eine separate Lizenz erwerben muss.

    Ich wünsche euch allen noch eine schöne Nacht...



  • Es gibt sooo viele Threads zu dem Thema, jeden Tag mind. einen.

    Nimm einfach MS VisualC++ 2005 Express Edition, die IDE ist kostenlos und was besseres findest du unter Windows gratis nicht:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html

    GUI Libraries gibts wie Sand am Meer:
    http://www.kharchi.de/cpp_gui/

    Zu den Lizenzen: es gibt kaum GUI-Libs die Geld kosten bzw. wo man später eine Überraschung erlebt. Entweder sie sind kostenlos oder sie wollen gleich Geld von dir haben, und lassen dich danach dann in ruhe. Selbst von MS sind die Kosten klar: deren MFC gibts in der Kauf-IDE gleich dazu und damit ist alles kostenmäßig abgegolten. Und bei Qt gibts fette Hinweise bzgl. Lizenzkosten auf der Homepage, da kann auch niemand danach sagen "Hab ich nicht gewusst". Die anderen GUI-Libs sind kostenlos.

    Fang aber erstmla an C++-Basis-Wissen aufzubauen, dann kannst du langsam in die GUI-Programmierung einsteigen. Gleich zu Anfang GUIs zu proggen, ist nicht zu empfehlen. Du scheinst aber nicht mal Basiskenntnisse in C++ zu haben? (LCC ist ein C-Compiler, also haste kein C++ gemacht)



  • Hallo,

    danke erstmal für die Hilfe...ich habe jetzt soweit alles am Laufen und kann sowohl über den Projekttyp "Win32" eine "Win32-Konsolenanwendung" generieren als auch über den Projekttyp "WTL" den "ATL/TWL Application Wizard" eine Anwendung generieren lassen. Die Anwendungen laufen auch und ich verstehe auch, wie das mit dem Message-System funktioniert.

    Momentan arbeite ich gerade den C++ Kurs auf www.highscore.de durch. Aber da ich früher schon programmiert habe (auch in Java), bringt mich das - obwohl ich schon fast am Ende des Kurses bin, meinem Gefühl nach "in der Sache" nicht so richtig weiter. Die Grundlagen helfen mir bis zu diesem Zeitpunkt nicht dabei, diesen undurchschaubaren Wust an Include-Verknüpfungen und Abstraktionsschichten zu verstehen, wie sie beim WinAPI Programmieren in Verbindung mit WTL scheinbar auftreten.

    So habe ich es z.B. mit ResEd aber auch mit ResourceBuilder weder bei der Win32-Konsolenanwendung noch bei der WTL-Applikation geschafft, den Text in der About-Box geringfügig zu ändern. Die Programme verändern die res-Dateien von Vorne bis hinten, aus 15 Kilobyte werden plötzlich 150 (scheint mir als wenn da irgendwelche ASCII-Kodierten Bitmaps drin gespeichert werden) und das, was ich per Hand mit einem einfachen Texteditor in wenigen Sekunden geschafft habe, gelingt mir nicht mit den speziell dafür empfohlenen Programmen:

    Ausgabefenster Ressourcen werden kompiliert...
    .\resource.h(13) : warning RC4005: 'IDI_TEST' : redefinition
    .\test.rc(6) : error RC2135 : file not found: TEXTINCLUDE
    .\test.rc(31) : error RC2104 : undefined keyword or key name: IDOK

    So sieht dann die Fehlermeldung beim Kompilieren mit Visual C++ Express aus, nachdem ich mit ResEd den Text in der AboutBox meiner Win32-Konsolenanwendung verändert habe.

    Ich wollte mir morgen schon ein Buch holen, welches hier im Forum genannt wird:
    C++. Objektorientiertes Programmieren von Anfang an. (Taschenbuch)
    ISBN-10: 3499600773

    Aber da befürchte ich auch, dass ich wieder nur Grundlagen lerne, die mich in meinem Fall nicht wirklich weiterbringen. Programmieren an sich kann ich und in diesen Büchern lassen die Authoren einen nur zu gern zum 100sten mal einen banalen Lottozahlengenerator auf der Konsole programmieren...Gibt es nicht irgendwelche Lernunterlagen speziell für WTL in Verbindung mit der WinAPI?



  • Momentan arbeite ich gerade den C++ Kurs auf www.highscore.de durch. Aber da ich früher schon programmiert habe (auch in Java), bringt mich das - obwohl ich schon fast am Ende des Kurses bin, meinem Gefühl nach "in der Sache" nicht so richtig weiter.

    Dann kannst du zwar die Basics der Sprache, aber das reicht nicht. Du brauchst noch Praxis und Erfahrung. Aber das kann dir kein Tutorial vermitteln. Nimm dir ein eigenes Projekt vor (z.B. eine eigene Adressverwaltung oder sowas, auch wenn es das schon 1000x im Netz als Downloads gibt), und entwickel dieses einfach. So sammelt man Erfahrung.

    Die Grundlagen helfen mir bis zu diesem Zeitpunkt nicht dabei, diesen undurchschaubaren Wust an Include-Verknüpfungen und Abstraktionsschichten zu verstehen, wie sie beim WinAPI Programmieren in Verbindung mit WTL scheinbar auftreten.

    Ja, das ist dann aber einfach die Erfahrung die dir fehlt. An diesem Punkt ist jeder mal gewesen, der heute locker programmiert. Wenn das alles vom ersten Tag verstanden werden würde, wäre das Programmieren nicht so interessant und motivierend. Das Ziel ist es, das ganze am Ende zu beherrchen.

    Ausgabefenster Ressourcen werden kompiliert...
    .\resource.h(13) : warning RC4005: 'IDI_TEST' : redefinition
    .\test.rc(6) : error RC2135 : file not found: TEXTINCLUDE
    .\test.rc(31) : error RC2104 : undefined keyword or key name: IDOK

    Zu den Win32-Resourcen kann ich dir nichts sagen. Versuch die Fehlermeldungen zu verstehen und das Problem zu lösen. Das gehört mit zum Sammeln von Erfahrung. Du kannst auch die Errorcodes (z.B. RC2135) in der MSDN eingeben, dann gibts meistens eine ausführlichere Erklärung.
    Ansonst solltest du solche speziellen Fragen auch in den entsprechenden Foren stellen (entweder hier im Win32API-Forum, oder bei Yahoo-WTL-Forum oder bei Codeproject).

    Ich wollte mir morgen schon ein Buch holen, welches hier im Forum genannt wird:
    C++. Objektorientiertes Programmieren von Anfang an. (Taschenbuch)
    ISBN-10: 3499600773

    Wenn du noch kein C++-Buch hast, ist immer eines zu empfehlen. Online-Tutorials können keine C++-Bücher ersetzen. Ob dieses Buch gut ist, weiß ich nicht. Es ist aber ein Einsteigerbuch. Taschenbuch hört sich ziemlich klein und kompakt an, da sind weitere Bücher danach nötig, um die Basics zu erfüllen. Z.B. wird sicherlich danach dieses Buch zu empfehlen sein:
    http://www.springeronline.com/sgw/cda/frontpage/0,11855,1-40109-22-48185313-0,00.html

    Ein Buch das alle Basics abdeckt, ist das: http://www.hanser.de/buch.asp?isbn=978-3-446-41023-7&area=Computer

    Entweder mehrere Kleine Bücher kaufen oder ein großes. Mit einem kleinen kommt man in C++ nicht weit. Später sind immer mehr Bücher nötig, über mehrere Jahre verteilt. Ich würde Basics aus Büchern lernen, und parallel Praxiserfahrung sammeln. EInfach mal machen!

    Du wirst aber z.B. über die WTL kein Buch finden. GUI-Bücher gibt es für C++ leider sehr wenige. Hauptsächlich gibts GUI-Bücher nur für die MFC (ist halt unter Windows sehr verbreitet) und Qt. Bei der WTL und anderen GUI-Libs mußt du halt Online-Tutorials durchforsten und auch Sourcecodes von anderen WTL-Beispielen analysieren und versuchen zu verstehen. Und einfach mal selber mit WTL ein Projekt machen. Es gibt keinen Königsweg.


Log in to reply