Frage zu dem Unterschied von WinApi, MFC, CLR, ATL



  • Hallo Leute,
    ich habe mal eine Frage:
    und zwar gibt es ja bei Visual Studio verschieden Projektvorlagen.
    Jetzt ist eine Frage was der Unterschied zwischen WinApi also Win32, MFC, CLR und ATL ist.
    Ich weiß, dass man mit MFC und WinApi Windows Fenster erstellen kann aber welches gehört jetzt zum C++ Runtime Framework oder zum .Net.

    Ich würde nähmlich gerne ein Projekt erstellen, dass auf jeden Windows läuft, ohne dass man zusätzlich irgendwelche DLL's oder Runtime Frameworks installieren braucht und trotzdem eine grafische Oberfläche besitzt. 🙂

    Wäre cool wenn mir jemand helfen könnte.



  • Ich glaube du hast noch kein blasen schimmer! Müssen wir für dich ein browser bedienen?



  • Hallo,
    ich habe selber schon mal nachgesehen aber ich kapiere es einfach nicht welches jetzt abhängig von z.B. dem Net Framework ist.



  • MaxundTutorials schrieb:

    Hallo,
    ich habe selber schon mal nachgesehen aber ich kapiere es einfach nicht welches jetzt abhängig von z.B. dem Net Framework ist.

    Auf jedem Desktop-Windows ist mindestens .Net 3.0 installiert.



  • oenone schrieb:

    MaxundTutorials schrieb:

    Hallo,
    ich habe selber schon mal nachgesehen aber ich kapiere es einfach nicht welches jetzt abhängig von z.B. dem Net Framework ist.

    Auf jedem Desktop-Windows ist mindestens .Net 3.0 installiert.

    Du bist wohl noch sehr jung ?

    Die ersten Windows Versionen hatten ganz sicher überhaupt keine .NET Unterstützung. Das NET
    Framework 3.0 war für Windows ab XP(SP2) und Server2003 verfügbar.

    Zu den anderen Fragen:

    MaxundTutorials schrieb:

    ..was der Unterschied zwischen WinApi also Win32, MFC, CLR und ATL ist.

    Win32 ist die 32-Bit-API für 32-Bit Windows.
    ATL und MFC kapseln WinAPI in Objekten, und bringen einiges an Komfort mit.

    Die CLR (Common Language Runtime) ist die virtuelle Maschine des .NET Frameworks.
    Sie führt CIL-Code (Common Intermediate Language) aus, der durch Kompilieren von CLI Sprachen entsteht.

    MaxundTutorials schrieb:

    Ich würde nähmlich gerne ein Projekt erstellen, dass auf jeden Windows läuft

    Wirklich auf jedem Windows ? Angefangen bei Windows 1.0 (16Bit, 32Bit, 64Bit)?

    MaxundTutorials schrieb:

    , ohne dass man zusätzlich irgendwelche DLL's oder Runtime Frameworks installieren braucht
    und trotzdem eine grafische Oberfläche besitzt. 🙂

    Da fällt auch C++ schonmal weg. Wird dann wohl auf diverse WinAPI mit ANSI-C hinauslaufen.
    Dann muss man es nur noch für 16, 32 und evtl. 64 Bit kompilieren für diverse Plattformen.

    Projekte besitzen erstmal keine grafischen Oberflächen. GUIs kann man mit
    (fast) jeder Programmiersprache programmieren.

    Wenn hier GUI-Editoren (Wizards, Assistenten u.s.w.) gemeint sind kommt es eher darauf an, was die
    Entwicklungsumgebung unterstützt. Leider gehen die GUI-Konzepte sehr weit auseinander. Es gibt zudem
    unzählige Bibliotheken, die man dazu kompilieren kann (DLLs waren ja hier nicht erwünscht ..).

    PS: Wer nämlich mit h schreibt ...



  • Natürlich meinte ich nur die noch unterstüzten Versionen. Alles vor Vista ist irrelevant.



  • Hey vielen Dank merano
    ja genau so eine kurze Übersicht habe gebraucht.
    Jetzt verstehe ich es auch.

    d.h. Wen ich die WinApi benutze kann ich sicher sein dass es eigentlich auf fast allen Windows PC läuft.

    vielen Dank 🙂



  • Wenn es ohne Zusatzinstallation lauffähig sein soll, dann schau dir mal Qt mit MinGW-Kompiler an!
    Es gibt kostenlos (Lizenz z.B. LGPL) ein komplettes Paket mit Qt-Bibliothek (wie MS MFC), IDE (wie MS Visual Studio) und MinGW-Kompiler.



  • statisch gelinkte Qt-Programme müssen aber ihrerseits auch wieder unter die LGPL oder eine kompatible Lizenz gestellt werden oder alles nötige mitgeliefert werden (Object-Files oder Source Code), damit der User es neu gegen eine andere Version von Qt linken kann.



  • oenone schrieb:

    statisch gelinkte Qt-Programme müssen aber ihrerseits auch wieder unter die LGPL oder eine kompatible Lizenz gestellt werden oder alles nötige mitgeliefert werden (Object-Files oder Source Code), damit der User es neu gegen eine andere Version von Qt linken kann.

    Das statische Linken ist mit MinGW nicht nötig! Man muss nur wenige DLLs in den EXE-Ordner hinzufügen, eine Runtime-Installation wie beim Microsoft-Kompiler (vcredist) ist nicht nötig.
    Ein mit MinGW kompiliertes Programm linkt nur gegen MSVCRT.DLL



  • Softwaremaker schrieb:

    Man muss nur wenige DLLs in den EXE-Ordner hinzufügen,

    Für manche ist jede Dateianzahl > 1 zu viel... Wenn man keinen Installer benutzt.


Anmelden zum Antworten