Frage

bin ich sehr interessiert daran, wie moderne Windows-Software in C ++ heute geschrieben wird. Ich fragte meinen Freund, der auf Windows-Software gearbeitet hatte, und er sagte, dass die letzten Dinge, die er arbeitete mit waren MFC und dann WTL. Er sagte, dass MFC ist nichts mehr modern, aber WTL ist immer noch verwendet, aber er hat nicht viel mehr wissen. Er sagte auch, dass WTL war nicht so modern und vor, dass er programmiert in reinen Windows-API.

Wie schreibt man Software für Windows Vista oder Windows 7? Verwenden Sie noch WTL? Was ist MFC und reine Windows-API? Oder gibt es andere Bibliotheken jetzt?

Ich weiß nicht viel darüber, aber habe C # oder eine andere .NET-Sprachen C ++ ersetzt in schriftlicher Form moderne Windows-Software?

War es hilfreich?

Lösung

Von dem, was ich in den letzten Jahren gesehen habe:

  • ist WTL auf einer Rettungsleine. Verlassen von Microsoft, nahm von den Fans und es gab einige sehr gewidmet Anhänger. Sehr sauber, aber die Lernkurve ist steil und die Fangemeinde schwindet. Die Yahoo-Gruppe ist nicht sehr aktiv. Ich kann es nicht empfehlen.

  • MFC bekam einen weiteren Mietvertrag über das Leben, wenn MSFT das Feature Pack veröffentlicht. Vielmehr umfangreich und ein bisschen un-MFC-ish, hat es eine starke Unterstützung für Häute, Layouts und Farbbänder Andocken. Ich dachte, es würde sehr populär sein, aber nie viel Devs sehen tat auf sie springen. MSDN-Forum Fragen haben spärlich gewesen. Wenn Sie bereits ein MFC haben Codebasis dann auf jeden Fall einen Blick darauf werfen. Eine weitere MFC Refresh für VS2010 mit Win7 zusätzliche Features, es hat die Basis UI-Lösung des Unternehmens bleiben.

  • ist wxWidgets noch um. Keine persönliche Erfahrung, aber Herr, die wenige Praktizierenden, die ich gehört habe, sind Schimpfen oben einen Sturm. Real bitter Sachen auch.

  • Qt wurde für eine ganze Weile um, aber erheblich Strom, vor allem im letzten Jahr aufgenommen. Wen auch immer verwendet es wirklich es mag. Es wird auch über die Grenzen einer UI-Klassenbibliothek zu bewegen, ihre Nutzer aktiv nach Lösungen für gemeinsame Programmieraufgaben suchen, der mit dem Buchstaben Q. beginnen die eine starke Stimme des Vertrauens ist.

Aber wenn Sie auf einem Microsoft-Stack sind keine dieser Klassenbibliotheken ist, wo die eigentliche UI-Entwicklung an ist. WPF ist der Elefant im Raum, sind es die Fähigkeiten hundert Meilen jenseits dessen, was oben aufgeführt ist. Seine Fähigkeit, Bruchsicherung und Paradigmengrenzen sind leistungsstark, Code zu schreiben, dass läuft auf einem Desktop sowie einen Web-Browser sowie ein Telefon schwer zu schlagen ist. Aber C ++ ist nicht Teil davon.

Andere Tipps

WTL, Qt, wxWidgets ziemlich häufig verwendet werden.

  • Sie alle erlauben eine schnelle GUI-Entwicklung und sind ziemlich vielseitig (dritte Option, meiner Meinung nach, braucht mehr Zeit, um sich daran zu gewöhnen). Zweite und dritte Optionen wirklich abkühlen, weil sie‘ re Cross-Plattform.

  • Das Schreiben Fenster in reiner WinAPI extrem oldschool ist aber manchmal unterhaltsam werden.

  • C# Ansatz Fenster zu bauen, ist noch schnell im Vergleich zu früheren Wahlen, aber ist etwas weniger flexibel.

Hier finden Sie aktuelle Qt - Sie können es mögen. Es sei denn natürlich lieber eine etwas nicht-portable Version. Aber selbst wenn man auf O X, Linux zu bauen plant nicht, Telefone, ... der Qt-Framework ist gut geschrieben, gut dokumentiert und einfach funktioniert. Das SDK enthält jetzt eine schöne IDE (Qt Creator) zu.

WTL jedes Mal, wenn Ihre Haupt-Windows-Plattform ist. Google Chrome nutzt es, Spotify verwenden. Es ist die produktivste, flexibel, ist keine Ressource Schwein. Durch die flexible meine ich Sie es mit reinem Win32-API-Code / andere C ++ Code ohne allzu große Schwierigkeiten nutzen können.

Für weitere Informationen WTL: Sammlung von WTL verbindet

In .NET (C #, VB.NET, ...), die Schneidkante der GUI-Programmierung ist WPF zur Zeit (als Ersatz für WinForms). Kompilierten Code in .NET ist eigentlich CIL , die in nativen Code zur Laufzeit durch den JIT-kompiliert wird. Dies hat den Vorteil, dass Sie sich etwa 64 oder 32-Bit-Zielsysteme egal.

In C ++ scheint Qt eine gute Lösung, da es sauber gestaltet und bietet eine große Reihe von Dienstleistungen. Was ich in Qt nicht mag seine Kompilierung Rundreise ist, ist es so langsam, da ein moc-Compiler, der Compiler, dann Link, es altert nimmt im Vergleich zu C # /. NET die ausführbaren Datei zu erhalten. Auf der anderen Seite Sie es stoßen auch in Embedded-Systemen können, was es in solchen Fällen interessant macht.

Ich würde empfehlen Sie zumindest einen Blick C # /. NET und Experiment mit ihm zu haben, bevor sie entscheidet.

Nach der Auswertung kam ich auf die Situation, in der reine Win32 oder WTL ist der einzige Weg, moderne Stil Win-Anwendungen zu schreiben, die nicht WRT basieren.

Der neue Look ist der wichtigste Punkt. MFC sieht schrecklich auf Win8 und Win10 vor allem mit all diesem Feature Pack Augenschmaus. Reines MFC ist gut, aber Fett und der Blick-Modellteil ist empört einfach schrecklich und ich mag gerade WTL mehr. Aber es ist nicht dokumentiert, und das ist so schlecht und beängstigend.

WxWidgets ist ein hässliches Spielzeug.

QT ist keine Alternative mehr zu. Sie konzentrieren sie zu sehr auf mobiles und appframework. Und wenn Sie MacOSX gehen, können Sie nicht verwenden QT (ja, es funktioniert, aber es wird Sie über die UX erbrechen machen).

WinRT ist so restriktiv und fehlende Funktionen, die Sie nicht verwenden können. Und Sie können sicher sein, dass sie scheitern, weil niemand die WINSTORE oder Windows auf Tablets / Smartphones verwenden. Warum also die Mühe.

WPF ist ok, wenn Sie denken, Sie Benutzer langsam und Fett-Anwendungen zu schätzen wissen. Es sieht besser aus, aber alle Augenschmaus sind jetzt Teil der UI-Design-Richtlinien nicht mehr und der Funktionsumfang des Widgets ist weniger als Win32 nativen Widgets. Unglaublich, aber wahr. Und ich sperre Sie in unportable C #, die meiner Meinung nach veraltet, weil jetzt der Leistung zählt wieder (da Leistung Energie, Lebenszeit).

Auch Herb Sutter und andere hochrangige MS Mitarbeiter Ihnen sagen, dass C ++ ist die Zukunft. Und die nächste Killer-Applikation ist Build auf C ++ 14 und Microsoft weiß es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top