2009-08-24 3 views
7

Il existe de nombreuses questions concernant les boîtes à outils d'interface graphique C++ pour Windows, mais elles s'appliquent principalement aux versions d'OS de bureau.Passage de MFC à QT ou WTL (ou autre boîte à outils GUI) recommandé pour le développement de Windows CE?

Je démarre maintenant un projet C++ pour périphérique portatif Windows CE 5.0 VGA, et je réfléchis à la bibliothèque GUI à choisir. J'ai une certaine expérience en utilisant MFC dans les projets Windows CE, mais il y a quelques points faibles connus de MFC mentionnés ici à SO (par exemple, technologies assez obsolètes utilisées, mauvaise abstraction, utilisation excessive du préprocesseur C++, etc.). Pour les projets de bureau, ils recommandent QT et WTL principalement. Dans le même temps, MFC présente certaines caractéristiques qui restent considérables pour le développement intégré. Alors, comment pensez-vous, est-il raisonnable de dépenser quelques ressources pour apprendre une nouvelle boîte à outils d'interface graphique pour passer de MFC, et quelle boîte à outils recommanderiez-vous dans ce cas? Ou MFC est toujours le plus important pour le développement intégré de Windows CE? Les caractéristiques les plus importantes d'une boîte à outils sont: charge CPU et mémoire modérée, petite taille d'exécution, bonne conception orientée objet, respect des bonnes pratiques C++ modernes, courbe d'apprentissage abrupte, vitesse de développement, aspect commercial, mise au point pratique et conception outils.

(Ce qui est nécessaire dans le projet:. Communication de port série, fils, dessin des tracés et des diagrammes, communication ActiveSync)

+1

Je dis coller avec MFC si vous le savez. Qt et WTL sont sympa, mais les frameworks GUI, tous, sont difficiles. Et il y a aussi l'utilisation de la macro dans QT. – toto

+0

Heh, Qt ne va pas vraiment vous aider dans le département "surexploitation du préprocesseur C++". –

Répondre

8

Nous avons Qt 4.5 sur le projet Windows CE 5.0 à l'étape de finition, donc j'essaie de parler des avantages/inconvénients du développement de Qt par rapport au MFC.
Qt Pluses:

  • Nice design POO
  • signaux/slots supportés nativement abstraction permet de développer plus rapidement et facilement
  • Qt prend en charge beaucoup de différentes fonctions (GUI, système de fichiers, réseau, filetage, etc.)
  • Licence LGPL permet de développer une application commerciale gratuitement
  • Opencodes, exemples, excellente documentation rend la courbe d'apprentissage beaucoup, beaucoup stepper
  • Bibliothèque multiplateforme. Nous avons pu exécuter notre application sur l'appareil et le bureau avec Vista OS sans aucun problème. Dans 4.Version 6 support Symbian a été ajouté

Qt points négatifs:

  • assez gros binaires (> 10 Mb pour le noyau et le module interfaces graphiques avec toutes les fonctionnalités "sur", mais vous pouvez modifier la construction de bibliothèque et de faire libs plus petit)
  • mémoire Big et l'utilisation du processeur à la comparaison MFC

Je pense que l'avantage principal de MFC comparer à elle Qt son empreinte mémoire et CPU minimale. Si ce n'est pas un problème, choisissez Qt.
P.S. La communication de port de communication et le dessin de tracé ne sont pas inclus nativement dans Qt, mais des bibliothèques LGT Qt existent, qui vous offrent de telles fonctionnalités (comme l'exemple "Qwt" pour le traçage).

+0

"Licence LGPL permet de développer des applications commerciales gratuitement" - est-ce exact? Je pense que pour une application commerciale, vous devriez acheter une licence qui est très chère. – Narek

+0

La variante n ° LGPL est gratuite, mais comme l'indique la LGPL, vous devez partager tout changement de code Qt libraryes. Si vous choisissez une variante commerciale, vous pouvez garder les modifications fermées. http://qt.nokia.com/products/licensing – cybevnm

1

Si vous apprenez QT, vous serez bien placé pour écrire du code pour tous les autres (Linux) qui sont poussés par les lignes de Nokia, Intel et Google. Cela en fait la technologie la plus appropriée pour moi!

Vous devrez peut-être consulter d'autres bibliothèques pour d'autres aspects de votre code, mais l'utilisation de QT pour l'interface graphique ne sera jamais un mauvais choix.

+0

sauf si vous ne voulez pas partager le code source – ZeroCool

+0

Vous n'avez pas besoin de partager le code source par licence commerciale QT. La licence QPL de QPL vous oblige uniquement à partager les modifications apportées au code source Qt. –

+0

Non seulement les plates-formes Linux, Symbian aussi. – e8johan

2

Le premier avantage est que QT est une bibliothèque multiplateforme. Deuxièmement, MFC est un mal de tête. Les choses les plus simples à faire avec MFC peuvent tourner à un gros problème . Passez donc du MFC au QT dès que possible.

2

Si vous connaissez le MFC, respectez-le: cela fonctionne bien pour CE. Il y a bien sûr quelques restrictions par rapport à Desktop MFC, mais elles ne sont généralement pas significatives. Je pense que le problème principal que nous avons trouvé est que l'impression n'est pas supportée dans MFC8 pour CE (VS2005). Par contre, si vous avez un canevas vierge, je vous recommande d'utiliser .NET - C# ou VB, selon ce que vous préférez.

+0

Si vous n'avez pas de contraintes de mémoire, C# est votre TTM le plus rapide. Très facile pour la plupart des applications embarquées, mais le framework compact est un gros cochon de mémoire. Il y a aussi des omissions très ennuyeuses dans les FC, surtout si vous venez d'un arrière-plan C# -desktop. – EndsOfInvention

+0

@EndsOfInvention: accepté, provenant d'un environnement de bureau .NET le cadre compact a beaucoup plus manquant par rapport à .NET complet que CE MFC a par rapport à MFC Desktop. – AAT