VORSCHLAG FÜR FAQ: GUI Programmierung mit C++



  • Immer wieder wird hier im Board gefragt, wie man "grafisch" C++ Programmieren koenne, wie man Fenster erstellt, ob man immer in diesem komischen DOS-Modus (der richtige Name ist uebrigens "Eingabeaufforderung" oder "Konsole") programmieren muesse oder wie man Bilder in die eigenen Spiele einbinden kann etc.
    Die Antwort darauf ist: C++ ist wunderbar dazu geeignet, "grafisch" zu programmieren. Sehr, sehr viele der normalen Windows-Programme wurden mit C++ geschrieben. Was braucht mal also um selbst so ein GUI (Graphical User Interface) zu schreiben? Man benoetigt eine entsprechende Bibliothek (zu Neudeutsch: Library). Eine Bibliothek ist im Grunde eine Sammlung von vorgefertigten Funktionen, die in eurem Programm eingebunden wird.

    Aber vorher noch ein paar wichtige Tipps und Bemerkungen:

    1. lern ORDENTLICH C++ bevor du irgendwelche Grafischen Oberflaechen machst. Das bedeutet: schreib ein paar Konosolenprogramme (auch aufwendigere!) und entwickel deinen Programmierstil. Gleich nach den Grundlagen mit GUIs anzufangen tut dir nicht gut. (Ich persoenlich wuerd sagen: mindestens 1 Jahr lang intensiv Konsolen, auch wenn's bitter ist... es wird dann alles viel leichter von der Hand gehen). Mal abgesehen davon: wenn ich koennte, wuerd ich nur Konsolenanwendungen schreiben. Du wirst selbst bald merken wie langweilig und zeitaufwendig das Erstellen der GUI sein kann 😉
    Viele GUI-Bibliotheken (auch "GUI-Toolkits" genannt) verlangen vom Programmierer, dass er sich mit Polymorphie, Vererbung usw. auskennt. Wenn du also mit der GUI-Programmierung anfaengst, und merkst dass du hint und vorne nix peilst: einfach noch ein bischen bei der Konsole bleiben, man kann auch da nette Dinge machen 🙂

    2. Noch eine Bemerkung fuer Visual Basic- und Delphi Benutzer:
    Sowohl VB als auch Delphi sind als "RAD - Tools" (RAD = Rapid Application Development) bekannt. Da kann man sich GUIs ganz einfach und schnell zusammenklicken. Das ist KEINE SELBSTVERSTAENDLICHKEIT! Zwar gibt es fuer fast alle Toolkits solche GUI-Designer, die einem viel Arbeit abnehmen, aber besonders am Anfang waere es wichtig, mal selbst "Hand anzulegen" um zu lernen.

    3. Plattformunabhaengigkeit wird immer wichtiger. Wer weiss, vielleicht willst du deine Programme irgendwann auch auf Mac's oder auf Linux zum Laufen bringen. Dann ist es von Vorteil wenn dein GUI-Toolkit mehr als eine Plattform kann. Die Toolkits, die ich jetzt aufzaehle, laufen alle unter Windows, viele zusaetzlich noch auf andere Plattformen. Es gibt aber auch GUI Libraries, die z. B. nur auf Linux (X11) oder nur auf Macs (Cocoa) laufen.

    4. Wenn du Spiele programmieren willst, dann musst du dich nicht unbedingt in eine GUI-API (API = Application Programming Interface, noch ein anderes Wort fuer Bibliothek) einlernen (obwohl es sicher nicht schadet!). Es gibt eigene Bibliotheken extra fuer Spiele.
    Fuer 2D-Spiele vor allem SDL (www.libsdl.org) und Allegro (http://alleg.sourceforge.net), fuer 3D Spiele (aber setz dich lieber zuerst mal mit 2D-Libraries auseinander, bevor du dich da dranwagst) OpenGL und DirectX.

    wenn du glaubst, damit besser aufgehoben zu sein, dann google einfach ein bischen rum oder benutz die Suchfunktion im Forum. Es gibt genug Material 🙂

    Zu den Toolkits selber:
    Es gibt da mehrere, welches die Richtige ist, darueber kann man streiten (und im Forum gibts oefters Diskussionen darueber), ich versuch mal ein paar Tipps zu geben:

    nur unter Windows lauffaehige Libraries

    • Unter Windows ist die grundlegendste dieser GUI-APIs (Application Programming Interface) die WinAPI. Alle anderen APIs bauen darauf auf. Die WinAPI ist ziemlich komplex (deshalb wurden ja auch andere APIs entwickelt, die darauf aufbauen und sie vereinfachen), unuebersichtlich und was den Programmierstil betrifft grottenhaesslich. Gleichzeitig aber auch sehr maechtig - ein echtes Monster eben. Vorteil: die WinAPI bekommst du mit jedem (mir bekannten) Compiler gratis dazu, ohne noch gross irgendwas machen zu muessen. Also keine Installation und gar nix.
    • die MFC ist ein C++ - Wrapper der WinAPI. Sie kommt, wie die WinAPI selber von Microsoft. Auch die MFC ist ziemlich alt und (fuer heutige Verhaeltnisse) schlecht designed. MFC kannst du - soweit ich weiss - nur mit dem Microsoft Visual Studio programmieren. Die MFC (Microsoft Foundation Classes) wird NICHT MEHR WEITERENTWICKELT, und eigentlich kann heutzutage nicht mehr dazu geraten werden, die MFC zu lernen.
    • die VCL (Visual Compoment Library) ist eine Bibliothek von Borland, und zusammen mit dem Borland C++ Builder 6 (BCB) erhaeltlich. Der BCB enthaelt ein RAD-Tool, d.h. du kannst dir Oberflaechen recht einfach zusammenklicken wie z. B. bei Visual Basic oder Delphi (der BCB6 schaut uebrigens genau so aus wie Delphi 6). Aber ansonsten ist der BCB6 ziemlich veraltert, und es gibt bereits neue Versionen des BCB ohne die VCL (z. B. den "Borland C++ Builder X"). Wenn du also die VCL willst, musst du also unbedingt darauf achten, den 6er zu kaufen... er sollte mittlerweile ziemlich billig sein. Der Compiler im BCB6 ist allerdings auch nicht mehr der allerneuste.
    • Das Visual Studio ab Version 7 enthaelt managedC++. Damit kannst du Oberflaechen wie mit C# schreiben. Aber ich hab noch nicht ein gutes Wort darueber gehoert. Wenn du also mit den Winforms (so heisst die GUI-Library von C#) Oberflaechen schreiben willst, dann lern besser C#. C# ist eine Sprache aehnlich wie C++ und wurde von Microsoft entwickelt. Wie so oft gilt auch hier: wer mehr wissen will, soll mal Google besuchen 🙂
      Es gibt auch Projekte, die Winforms auf andere Plattformen umzusetzen (z. B. Mono: www.go-mono.com/); bisher aber in dem Bereich nur maessig erfolgreich.

    Plattformunabhaengige Libraries

    • Der oben kurz erwaehnte BCB X enthaelt keine VCL mehr, sondern soll in Zukunft mit der wxWidgets-Library ausgeruestet werden. wxWidgets ist eine Library, die nicht nur auf Windows, sondern auch auf Linux, Mac usw. laeuft, aber dabei immer so aussieht, als waere sie fuer das aktuelle Betriebssystem geschrieben worden 🙂 . wxWidgets ist gratis (mehr noch: OpenSource!), und du kannst es dir z. B. von www.wxwidgets.com runterladen. Fuer den Dev-C++ gibts aber eigene DevPaks irgendwo im Netz, damit ist die Installation _wesentlich_ einfacher (hier gibts z. B. eines: http://www.upcase.de/devpack.html:) Das "MinGW-Studio", eine Freeware-IDE wie Dev-C++, kannst du dir ausserdem in einer speziellen Version inklusive bereits integrierter wxWidgets-Library runterladen (http://www.parinya.ca). Nachteil von wxWidgets: es gibt keine gratis GUI-Designer, d.h. du musst dir alles selber zusammenprogrammieren, nix mit "mit Maus zusammenklicken" oder dir einen kaufen. Es sind aber gratis GUI-Designer in der Entwicklung, schau einfahc mal auf die wxWidgets-Homepage, vielleicht findest du das was passendes 🙂
    • die Qt-Library ist besonders unter Linux bekannt, laeuft aber auch unter Windows (wird z. B. von dem Webbrowser Opera oder von Adobe benutzt). Unter Windows ist nur eine sehr alte Version gratis, die noch dazu nur mit dem VC 6 funktioniert. Fuer alles andere musst du zahlen... Offizielle Homepage: www.trolltech.com
      Ausserdem ziemlich schlecht: wenn du deine Programme verkaufen willst, dann musst du bei Qt erstmal eine entsprechende Lizenz kaufen, sonst darfst du deine Programme nur als OpenSource weitergeben. Qt liefert einen (soweit ich gehoert hab) sehr tollen GUI-Designer gleich mit, den "Qt Designer"
    • gtkmm (www.gtkmm.org) ist die Library, mit der ich momentan arbeite (oder besser: die ich momentan lerne). Sie ist - und die Meinung ist weitverbreitet - die am besten designte Library von allen. Urspruenglich fuer Linux entwickelt (und ist OpenSource), aber laeuft mittlerweile auch auf Windows. Ist aber nicht ganz leicht einzurichten (du findest eine Installationsanleitung in der Dokumentation auf der offiziellen Homepage). gtkmm baut uebrigens auf einer Library auf, die in C geschrieben wurde: GTK. Auch GTK wird - zumindest unter Linux - ab und an auch von C++ Programmierern verwendet (obwohl ich keinen Anlass dazu sehe und man als C++ Programmierer mit GTK besser dran ist)
    • VCF (Visual Component Framework), ist eine C++-Bibliotek zur Erstellung von GUI-Anwendungen. Es ist genauso wie gtkmm in sehr gutem C++ geschrieben, verwendet Namespaces, Templates, Exceptions...
      Der Vorteil gegenüber gtkmm: Mit VCF kann man sowohl GUI-Anwendungen Programmieren, als auch Threads nutzen, und (erweiterte) RTTI ist auch mit dabei. Du kannst auch z.B. nur den GUI-Teil nutzen, weil VCF keine monolitische Bibliotek ist. Außerdem ist es sehr einfach zu installieren (auf Windows - im Gegensatz zu gtkmm), und kann auch mit dem VS 6 genutzt werden (auch: gcc unter Linux, VS 7.1 unter Windows, MinGW unter Windows).
      Auch RAD ist vorgesehen: Es gibt sogar schon eine Alpha eines Tools namens VCF-Builder.

    Homepage:http://vcf.sourceforge.net/
    (Thx an c++eus fuer diesen Beitrag)

    Es gibt noch einige andere GUI-Libraries, wie z. B. das "Fox-Toolkit" oder FLTK, aber die oben aufgezaehlten sind bei weitem die bekanntesten (Hoff ich hab nichts ausgelassen 🙂 ).

    Das "beste" Toolkit gibts wohl nicht, das "einfachste" ist wie oben gesagt IMHO (aber auch darueber laesst sich streiten) die VCL. Dafuer musst du dir aber den BCB 6 kaufen. Andere Libraries, wie z. B. wxWidgets oder gtkmm sind gratis, dafuer aber manchmal etwas verzwickter. Sorry, deine Frage, was du lernen sollst, kann leider nicht eindeutig beantwortet werden



  • Gefällt mir nicht so der Beitrag (da

    a) zu Windows-Lastig
    b) zu Subjektiv (ua. der Kommentar zur VCL)
    c) teilweise falsch (zB. gibt es GTKmm für MSVC++)
    ). Werd aber was ähnliches bald schreiben.



  • a) Absicht, hast du schon mal einen Noob gesehen, der sich fuer Linux-GUIs interessiert. Die einzig nennenswerten Nicht-Windows Libraries waeren zudem Cocoa und die Xlib (wobei die Xlib ja fuer GUI Programmierung nicht allzu gut geignet ist (keine Widgets))
    b) 😞 hast recht (trotzdem ist VCL IMO die einfachste, da auf RAD ausgelegte, Library)
    c) echt? kewl 🕶 *korriegierengeh*



  • Blue-Tiger schrieb:

    a) Absicht, hast du schon mal einen Noob gesehen, der sich fuer Linux-GUIs interessiert. Die einzig nennenswerten Nicht-Windows Libraries waeren zudem Cocoa und die Xlib (die ja wohl niemand freiwillig verwendet).

    Oehm...unglaubliches Argument fuer pro Windows... 🙄

    mfg
    v R



  • virtuell Realisticer schrieb:

    Blue-Tiger schrieb:

    a) Absicht, hast du schon mal einen Noob gesehen, der sich fuer Linux-GUIs interessiert. Die einzig nennenswerten Nicht-Windows Libraries waeren zudem Cocoa und die Xlib (die ja wohl niemand freiwillig verwendet).

    Oehm...unglaubliches Argument fuer pro Windows... 🙄

    mfg
    v R

    *g* kann ich was dafuer wenn immer nach Windows GUI Programmierung gefragt wird? 😕

    (das "nicht freiwillig verwenden" bezog sich uebrigens auf die Xlib, nicht auf Cocoa)



  • Managed C++ ist ne Sprache kein Toolkit.

    Und sonst... sieht irgndwie wie ein Artikel aus Bild-Zeitung aus. Ne menge Wörter, vollgestöpft mit Emotionen, und nach dem durchlesen ist man wieder am gleichen Punkt die vorher.



  • Blue-Tiger schrieb:

    a) Absicht, hast du schon mal einen Noob gesehen, der sich fuer Linux-GUIs interessiert. Die einzig nennenswerten Nicht-Windows Libraries waeren zudem Cocoa und die Xlib (die ja wohl niemand freiwillig verwendet).

    Was!!!!!!!!!!!!!!

    Was ist mit QT, und die X anderen.
    Die XLIB hat mit MFC und VCL nichts gemeinsam.



  • Unix-Tom schrieb:

    Blue-Tiger schrieb:

    a) Absicht, hast du schon mal einen Noob gesehen, der sich fuer Linux-GUIs interessiert. Die einzig nennenswerten Nicht-Windows Libraries waeren zudem Cocoa und die Xlib (die ja wohl niemand freiwillig verwendet).

    Was!!!!!!!!!!!!!!

    Was ist mit QT, und die X anderen.
    Die XLIB hat mit MFC und VCL nichts gemeinsam.

    Jo, was soll mit Qt und all den x anderen (gtk, wxWidgets) sein? werden ja alle genannt.

    Dass die Xlib mit MFC nix gemeinsam hat ist mir klar. Was ich mit dem Satz oben eigentlich sagen wollte: niemand verwendet freiwillig die Xlib! (hat ja noch nichtmal Widgets.... ja, sie hat ihren Einsatzbereich, mir schon klar. Aber IMO fuer GUI Programmierung ungeeignet)



  • bluetiger schrieb:

    ...niemand verwendet freiwillig die Xlib!

    gewagte aussage... kannst du das irgendwie sachlich begründen, ausser "hat keine widgets"?



  • kingruedi schrieb:

    Werd aber was ähnliches bald schreiben.

    Ist mir zu Linux-lastig. :p



  • Korbinian schrieb:

    bluetiger schrieb:

    ...niemand verwendet freiwillig die Xlib!

    gewagte aussage... kannst du das irgendwie sachlich begründen, ausser "hat keine widgets"?

    Hmm... ok, stimmt, es ist vielleicht wirklich etwas unsachlich, gibt wahrscheinlich auch Leute, die sie gern benutzen, aber i. d. R. sind das die Ausnahme.

    Was die Xlib so unzugaenglich macht, sind IMO:

    1. "keine Widgets" 😉 (was GUI Programmierung sehr, sehr schwierig bis unmoeglich macht ohne Wrapper)
    2. relativ low-lewel
    3. AFAIK ziemlich veraltet und kompliziert
    4. Wie viele"ernsthafte", aktuelle Projekte kennst du, die direkt die Xlib benutzen (X-Server, Qt-Library usw. zaehlen nicht 😉 :D)? Und wieviele kennst du, die Qt, GTK etc. benutzen? Ist zwar kein weber Beweis noch Kriterium, trotzdem relativ aussagekraeftig



  • Deine Intention in Ehren und du hast dir ja auch Mühe gegeben, aber ich finde es sind zu viele persönliche Meinungen darin vorhanden. Das du z.B. schreibst, das man über ManagedC++ nichts gutes gehört hat, und man deshalb C# lernen soll, wenn man WinForms benutzen will, finde ich sehr merkwürdig.

    ManagedC++ ist einfach nur eine weitere Sprachdefinition, die mit WinForms direkt nichts zu tun hat. WinForms ist einfach nur ein Teil eines Frameworks (.NET).



  • managedC++ heißt inzwischen übrigens C++/CLI



  • Besser gesagt, die nächste Version wird so heißen. ManagedC++ ist sozusagen das "alte" und ab nächstem Jahr wird das ManagedC++ eleganter in der Syntax und wird somit auch gleich umbenannt. Weiterhin gaaanz wichtig: C++/CLI wird bei der ECMA eingereicht und wird somit ISO-Standard! Einfach nur krass, so dürften wir wohl bald nicht nur C++/CLI Compiler von MS sehen, sondern auch von anderen Herstellern.



  • Lieber kingruedi:

    kingruedi schrieb:

    b) zu Subjektiv (ua. der Kommentar zur VCL)

    Objektivität ist eine Illusion. Ausserdem kann ich am Kommentar zur VCL nix Subjektives finden? (zugegeben ihc hab den Punkt nur kurz überflogen)

    Und zu

    kingruedi schrieb:

    a) zu Windows-Lastig

    sowie

    kingruedi schrieb:

    c) teilweise falsch (zB. gibt es GTKmm für MSVC++)
    ). Werd aber was ähnliches bald schreiben.

    Wie Jester schon sehr ähnlich sagte: Ist mir zu Linux und OpenSource-Lastig. Wieso ich jetzt schon glaube das behaupten zu können? Ganz einfach: man tendiert nunmal dazu, das womit man arbeitet präziser zu thematisieren als das wovon man nur mal etwas gehört hat.

    Was den Rest angeht: Ich finde BT hat eine nette Basis geliefert. Was spricht also dagegen, diese basis zu nehmen und in Zusammenarbeit eine Erweiterung der Unix-Seite sowie eine Korrektur von Fehlern vorzunehmen? Ich denke, genau deshalb hat BT diesen Vorschlag ja veröffentlicht?
    Es besteht also gar kein Grund selber was ähnliches zu schreiben. Sinnvoll wäre es die gelegte Basis zu erweitern.

    Meine Meinung dazu.

    -junix



  • Und sonst... sieht irgndwie wie ein Artikel aus Bild-Zeitung aus. Ne menge Wörter, vollgestöpft mit Emotionen, und nach dem durchlesen ist man wieder am gleichen Punkt die vorher.

    ach matty schreib doch selber was vernünfitges bevor du gute artikel kritisierst 😡 "bild zeitung" wie kommst du zu so einem vergleich?

    BT hat einen sehr guten beitrag verfasst, es war ja auch ein vorschlag und wenn wir den text zusammen bearbeiten, kommt ein gutes stücken für die FAQ raus....



  • Und wieviele kennst du, die Qt, GTK etc. benutzen?

    Eine Menge. Dafür kenne ich keine ernsthaftes Projekt, was MFC, VCL, CLX oder den Rest benutzt 🙄

    @junix

    Objektivität ist eine Illusion. Ausserdem kann ich am Kommentar zur VCL nix Subjektives finden? (zugegeben ihc hab den Punkt nur kurz überflogen)

    den Kommentar den ich meinte hat er mittlerweile abgeschwächt.

    Wie Jester schon sehr ähnlich sagte: Ist mir zu Linux und OpenSource-Lastig. Wieso ich jetzt schon glaube das behaupten zu können? Ganz einfach: man tendiert nunmal dazu, das womit man arbeitet präziser zu thematisieren als das wovon man nur mal etwas gehört hat.

    gut, dann lassen wir das Thema sein. Ich lösch auch gleich mal den Rest der FAQ, weil die Leute ja ihre Wege und Vorstellungen da bevorzugen

    🙄



  • Jester schrieb:

    kingruedi schrieb:

    Werd aber was ähnliches bald schreiben.

    Ist mir zu Linux-lastig. :p

    rofl...



  • kingruedi schrieb:

    Und wieviele kennst du, die Qt, GTK etc. benutzen?

    Eine Menge. Dafür kenne ich keine ernsthaftes Projekt, was MFC, VCL, CLX oder den Rest benutzt 🙄

    *lol*



  • Mein Vorschlag:

    GUI Programmierung
    http://www.geocities.com/SiliconValley/Vista/7184/guitool.html

    ⚠

    • Ohne fundierte C++ Kentnisse ist es nicht zu empfehlen ein GUI Toolkit zu benutzen. Lieber erst vernünftig C++ lernen!
    • Wenn dir die Informationen nicht ausreichen, welches Toolkit dir am besten liegt, solltest du dich auf den Projekt Homepages informieren.

    Platform übergreifend

    • CLX - Die CLX ist ein von Borland entwickeltes Framework, dass für Linux und Windows verfügbar ist. Das Framework bietet ein Widget System auf Basis des Qt Toolkits an (siehe Qt weiter unten). Das Framework wird mit dem Borland C++ Builder und Kylix ausgeliefert und ist für C++ und Objekt Pascal (Delphi) verfügbar. Die CLX gibt es in einer OpenSource Version als FreeCLX. (siehe VCL, VCL/CLX-Forum)
    • GTK+ - GTK+ ist ein sehr populäres Widget System, welches unter X11 (Unix/Linux/BSD), Linux Framebuffer, MacOS X und Windows läuft. GTK+ ist in einem Objekt orientiertem C Stil geschrieben und unter der LGPLizenz frei verfügbar. Es existieren auch verschiedene Bindings für andere Sprachen, wie C++ (siehe GTKmm), C#, Ruby, PHP, Perl, Pyhton uvm.
    • GTKmm - GTKmm ist eine C++ Widget Library die auf GTK+ (siehe oben) aufbaut. GTKmm ist im Gegensatz zu den meisten Widget Systemen in einem sehr modernen C++ geschrieben.
    • FLTK - FLTK ist ein C++ Widget System, dass unter MacOS X, X11 (Unix/Linux/BSD) und Windows läuft. Dabei handelt es sich um eine Art ThinLayer über den unterliegenden Systemen, so dass man auch direkte Funktionen des unterliegenden Systems anwenden kann. FLTK steht der LGPLizenz.
    • FOX - Das FOX Toolkit ist ebenfalls ein C++ Widget System, dass für Windows und X11 (Unix/Linux/BSD) verfügbar ist. Das System benutzt aber sehr viele Macros!
    • Qt - Qt ist ein C++ Framework, dass für Windows, X11 (Unix/Linux/BSD), MacOS X und Embedded Systeme verfügbar ist. Qt gibt es einmal in einer freien GPL Version (wobei die Windows GPL Version leider nicht mehr aktuell ist) und unter einer kommerziellen Lizenz.
    • VCF - Die VCF ist eine weitere Platform unabhängige C++ Library. Sie unterstützt MacOSX, Windows und X11 (Unix/Linux/BSD). Die VCF ist wie GTKmm in sehr modernem C++ geschrieben.
    • wxWidgets (früher wxWindows) - wxWidgets ist ein C++ Framework, dass nativen Widget Support anbietet und auf Basis von Windows, GTK+, Motif, Mac OS, MGL, OS/2 und einigen Embedded Systemen implementiert ist. Das System wirkt relativ MFC (siehe unten) ähnlich.

    MacOS X

    • Cocoa - Cocoa ist das native Framework für MacOS X. Das System ist ein Nachfolger des NeXTStep/OpenStep Systems (siehe auch GNUStep weiter unten). Es ist in Objective-C geschrieben, aber auch Integration in C++ (Man kann Objecive-C und C++ Code sogar in einer Datei kombinieren!), Java, AppleScript uvm.

    Unix/Linux/BSD/X11

    • GNUStep - GNUStep ist ähnlich wie Cocoa/MacOSX ein auf NeXTStep/OpenStep basierendes System und in Objective-C entwickelt. Aber genau wie bei Cocoa kann man direkt Objective-C und C++ mischen. Auch Anbindungen für Java und Ruby sind vorhanden. GNUStep steht unter der GPL/LGPL
    • OpenMotif/Motif - Motif ist ein vom IEEE 1295 Standard spezifiziertes Widget Framework. Motif war das erste Unix Widget System. Es ist einmal als kommerzielle Variante (Motif) erhältlich und einmal als OpenSource-Variante (nicht OSI Konform), die eine kostenlose Benutzung auf einer OpenSource Platform erlaubt.

    Unix/Linux-FAQ: GUI Programmierung (X, KDE/QT, GNOME/GTK)
    GUI Toolkits for The X Window System

    Windows

    • Avalon - Avalon ist das neue native Widget System für die kommende Windows Version (Longhorn). Avalon basiert auf dotNET.
    • MFC - Die MFC ist ein von Microsoft entwickeltes C++ Framework, welches direkt auf der WinAPI basiert. Die MFC gibt es nur in Verbindung mit dem Visual Compiler oder dem Borland Compiler. Die MFC wird aber in Zukunft nicht mehr von Microsoft weiter entwickelt! (siehe auch MFC Forum)
    • VCL - Die VCL ist eine Library von Borland, die mit dem Borland C++ Builder und Delphi zusammen vertrieben wird. Dabei wurde auch die Entwicklung der VCL eingestellt und zum einen durch die Platformunabhängige und auf Qt basierende CLX Library (siehe oben) und zum anderen im BuilderX durch eine wxWidgets (siehe oben) basierene Lösung ersetzt <-- weiss ich nicht genau (siehe VCL/CLX-Forum)
    • WinAPI - Die WinAPI ist die native Schnittstelle von Windows und in C gehalten. Aber auch die WinAPI wird in Zukunft nicht mehr weiter entwickelt und durch eine dotNET Lösung ersetzt (siehe Avalon)
    • WindowsForms - Die WindowsForms (oder auch WinForms) sind eine dotNET Library, zur Widget Programmierung. Die vorhandenen WindowsForms Tools sind aber auf C# ausgerichtet. Die WinForms gehören aber nicht zur Core Library von dotNET und sind eine Microsoft Erweiterung. Deswegen sind die WinForms nicht platformunabhängig und eine Unterstützung von alternativen dotNET Implementierung ist nicht sicher oder 100% kompatibel.

Anmelden zum Antworten