[c++] Wie entscheide ich, ob ich ATL, MFC, Win32 oder CLR für ein neues C ++ Projekt verwende?


1 Answers

Win32 ist die rohe Bare-Metal-Methode. Es ist mühsam, schwierig zu benutzen und hat viele kleine Details, an die man sich erinnern muss, sonst werden die Dinge auf relativ mysteriöse Weise scheitern.

MFC baut auf Win32 auf, um Ihnen eine objektorientierte Methode zum Erstellen Ihrer Anwendung bereitzustellen. Es ist kein Ersatz für Win32, sondern eine Verbesserung - es ist eine Menge Arbeit für Sie.

System.Windows.Forms (was ich unter CLR vermute) ist völlig anders, hat aber große Ähnlichkeiten mit MFC aus seiner Grundstruktur. Es ist bei weitem am einfachsten zu verwenden, erfordert aber das .NET-Framework, das in Ihrem Fall ein Hindernis sein kann oder nicht.

Meine Empfehlung: Wenn Sie .NET vermeiden müssen, dann verwenden Sie MFC, ansonsten verwenden Sie .NET (in der Tat würde ich in diesem Fall C # verwenden, da es viel einfacher ist, mit zu arbeiten).

Question

Ich beginne gerade mein erstes C ++ Projekt. Ich verwende Visual Studio 2008 . Es handelt sich um eine Windows-Einzelformularanwendung, die auf einige Datenbanken zugreift und eine WebSphere MQ-Transaktion initiiert. Ich verstehe im Grunde die Unterschiede zwischen ATL, MFC, Win32 (ich bin eigentlich ein bisschen verschwommen) und CLR, aber ich weiß nicht, wie ich wählen soll.

Ist einer oder mehrere davon nur aus Gründen der Abwärtskompatibilität vorhanden?

Ist CLR eine schlechte Idee ?

Irgendwelche Vorschläge geschätzt.

Edit: Ich habe C ++ für dieses Projekt aus Gründen ausgewählt, die ich nicht in der Post betrachte, die nicht ganz technisch sind. Also, unter der Annahme , dass C ++ die einzige / beste Option ist, welche sollte ich wählen?




Ich wäre sehr neugierig, warum Sie das überhaupt in C ++ machen würden. Basierend auf Ihrer kurzen Beschreibung klingt C # wie eine viel geeignetere Wahl.

Um etwas näher zu erläutern, schauen Sie sich den Link an, den Sie mit C ++ CLR beschrieben haben. Die am besten bewerteten Antwort-Notizen (genau, meiner Meinung nach), dass C ++ für "Kernel, Spiele, Hochleistungs- und Server-Apps" geeignet ist - von denen keiner zu beschreiben scheint, was Sie tun.

MFC, ATL, usw. werden in dem Sinne unterstützt, dass Sie Ihre App in zukünftigen Versionen von Visual Studio kompilieren und auf zukünftigen Windows-Versionen ausführen können. Aber sie werden nicht in dem Sinne unterstützt, dass in der API oder der Sprache nicht so viel neue Entwicklung stattfindet wie in CLR und C #.




Related