2009-08-24 4 views
7

Es gibt ziemlich viele Fragen zu C++ - GUI-Toolkits für Windows, aber sie gelten hauptsächlich für Desktop-Betriebssystemversionen.Wird der Wechsel von MFC zu QT oder WTL (oder einem anderen GUI-Toolkit) für die Windows CE-Entwicklung empfohlen?

Ich starte jetzt ein C++ - Projekt für Windows CE 5.0 VGA-Handheld-Gerät, und darüber nachzudenken, welche GUI-Bibliothek zu wählen. Ich habe einige Erfahrung mit MFC in Windows CE-Projekten, aber es gibt einige bekannte Schwachpunkte von MFC, die hier bei SO erwähnt werden (z. B. ziemlich veraltete Technologien, schlechte Abstraktion, übermäßige Verwendung von C++ - Präprozessoren usw.). Für Desktop-Projekte empfehlen sie meistens QT und WTL. Gleichzeitig hat MFC einige Eigenschaften, die für die Embedded-Entwicklung noch beträchtlich sind.

Also, wie denkst du, ist es sinnvoll, einige Ressourcen zu investieren, um neues GUI-Toolkit zu lernen, um von MFC zu wechseln, und welches Toolkit würdest du in diesem Fall empfehlen? Oder ist MFC immer noch das wichtigste für Windows CE Embedded-Entwicklung?

Die wichtigsten Merkmale eines Toolkits sind: moderate CPU- und Speicherlast, geringe Laufzeit, gutes objektorientiertes Design, Einhaltung moderner C++ - Praktiken, steile Lernkurve, Entwicklungsgeschwindigkeit, kommerzielles Aussehen, praktisches Debugging und Design Werkzeuge.

(Was im Projekt benötigt wird. Kommunikation über serielle Schnittstelle, Fäden, Plots und Diagramme Zeichnung, Kommunikation ActiveSync)

+1

Ich sage Stick mit MFC, wenn Sie es wissen. Qt und WTL sind nett, aber GUI-Frameworks, alle von ihnen, sind hart. Und es gibt auch Makro-Nutzung in QT. – toto

+0

Heh, Qt hilft dir nicht wirklich in der Abteilung "Überbeanspruchung von C++ Präprozessor". –

Antwort

8

Wir haben Qt 4.5 auf Windows CE 5.0 Projekt in der Endstufe, also versuche ich über Vorteile/Nachteile der Qt-Entwicklung im Vergleich zu MFC zu erzählen.
Qt Pluses:

  • Nizza OOP Design
  • Nativ unterstützt Signale/Slots Abstraktion schneller und leichter
  • Qt unterstützt viele verschiedene Funktionen (GUI, Dateisystem, Netzwerk, Gewindeschneiden, etc.)
  • ermöglicht entwickeln
  • LGPL-Lizenz erlaubt kommerzielle Anwendung kostenlos entwickeln
  • Open Sourcecodes, Beispiele, ausgezeichnete Dokumentation macht Lernkurve viel, viel Stepper
  • Multiplattform-Bibliothek. Wir konnten unsere Anwendung problemlos auf dem Gerät und Desktop mit Vista OS ausführen. In 4.6 Version Symbian-Unterstützung wurde

Qt minuse hinzugefügt:

  • Ziemlich große Binärdateien (> 10 Mb für Core- und Gui-Modul mit allen Funktionen "auf", aber Sie können Bibliotheksgebäude zwicken und machen Libs kleine)
  • Big Speicher und CPU-Auslastung

ich denke, dass der Hauptvorteil von MFC MFC Vergleich zu vergleichen ihm seine minimale Speicher und CPU-Fußabdruck Qt. Wenn dies kein Problem ist, wählen Sie Qt.
P.S. Com Port Kommunikation und Plot-Zeichnung sind nicht nativ in Qt enthalten, aber LGPL Qt-basierte Bibliotheken existieren, die Ihnen solche Features bieten (als Beispiel "Qwt" zum Plotten).

+0

"LGPL-Lizenz erlaubt kommerzielle Anwendung kostenlos zu entwickeln" - ist das richtig? I thibk für kommerzielle Anwendung sollten Sie eine Lizenz kaufen, die sehr teuer ist. – Narek

+0

Nr. LGPL Variante ist frei von Gebühren, aber wie LGPL Staaten, sollten Sie alle Änderungen von Qt Bibliotheks Code teilen. Wenn Sie eine kommerzielle Variante wählen, können Sie die Änderungen geschlossen halten. http://qt.nokia.com/products/licensing – cybevnm

1

Wenn Sie QT lernen, werden Sie auch Code der anderen für alle schreiben gesetzt werden (Linux) Plattformen, die von den Linien von Nokia, Intel und Google vorangetrieben werden. Das macht es für mich zur am besten geeigneten Technologie!

Sie müssen möglicherweise noch nach anderen Bibliotheken für einige der anderen Aspekte Ihres Codes suchen, aber die Verwendung von QT für die GUI wird nie eine schlechte Wahl sein.

+0

Wenn Sie den Quellcode nicht teilen möchten – ZeroCool

+0

Sie müssen den Quellcode nicht durch QT kommerzielle Lizenz teilen. LGPL QT-Lizenz verpflichtet Sie nur, Änderungen an Qt-Quellcode zu teilen. –

+0

Nicht nur Linux-Plattformen, auch Symbian. – e8johan

2

Der erste Vorteil ist, dass QT eine plattformübergreifende Lib ist. Zweitens ist MFC Kopfschmerzen. Die einfachsten Dinge, die mit MFC zu tun haben, können zu einem großen Problem werden . Wechseln Sie so schnell wie möglich von MFC zum QT.

2

Wenn Sie MFC kennen, dann bleiben Sie dabei: es funktioniert gut für CE. Es gibt natürlich einige Einschränkungen im Vergleich zu Desktop-MFC, aber sie sind in der Regel nicht signifikant. Ich denke, das Hauptproblem, das wir gefunden haben, ist, dass Drucken in MFC8 für CE (VS2005) nicht unterstützt wird.

Auf der anderen Seite, wenn Sie eine leere Leinwand haben, würde ich für .NET - entweder C# oder VB empfehlen, was auch immer Sie am wohlsten fühlen.

+0

Wenn Sie keine Speicherbeschränkungen haben, ist C# Ihre schnellste TTM. Sehr einfach für die meisten Embedded-Anwendungen, aber das kompakte Framework ist ein großer Speicher. Es gibt auch einige sehr lästige Auslassungen in der CF esp, wenn Sie von einem C# -Desktop-Hintergrund kommen. – EndsOfInvention

+0

@EndsOfInvention: vereinbart, von einer .NET-Desktop-Umgebung kommend, hat das Compact Framework viel mehr relativ zu vollständigem .NET als MFC CE relativ zu Desktop-MFC. – AAT

Verwandte Themen