2009-08-24 14 views
7

Ci sono molte domande relative ai toolkit C++ GUI per Windows, ma si applicano principalmente alle versioni del sistema operativo desktop.Il passaggio da MFC a QT o WTL (o altro toolkit GUI) è consigliato per lo sviluppo di Windows CE?

Ora sto iniziando un progetto di C++ per dispositivo portatile 5.0 VGA Windows CE, e pensare a quello libreria GUI di scegliere. Ho un po 'di esperienza nell'utilizzo di MFC in progetti Windows CE, ma ci sono alcuni punti deboli noti di MFC menzionati qui in SO (ad esempio, tecnologie piuttosto obsolete utilizzate, astrazione errata, uso eccessivo del preprocessore C++, ecc.). Per i progetti desktop, raccomandano principalmente QT e WTL. Allo stesso tempo, MFC ha alcune caratteristiche per essere ancora considerevole per lo sviluppo embedded.

Quindi, come si pensa, è ragionevole speso alcune risorse di apprendimento nuova GUI toolkit di passare da MFC, e che cosa toolkit mi consiglia in questo caso? O MFC è ancora il più considerevole per lo sviluppo embedded di Windows CE?

Le caratteristiche più importanti di un kit di strumenti sono: moderato carico della CPU e della memoria, di piccole dimensioni runtime, buona orientata agli oggetti di design, il rispetto di una buona C moderno ++ pratiche, ripida curva di apprendimento, la velocità di sviluppo, aspetto commerciale, a portata di mano il debug e il design utensili.

(Ciò che è necessario nel progetto:. Seriale di comunicazione della porta, fili, trame e gli schemi di disegno, comunicazione ActiveSync)

+1

Dico bastone con MFC se lo conosci. Qt e WTL sono belli, ma i framework GUI, tutti loro, sono difficili. E c'è anche un uso macro in QT. – toto

+0

Heh, Qt non ti aiuterà davvero nel reparto "uso eccessivo del preprocessore C++". –

risposta

8

Abbiamo Qt 4.5 su 5,0 progetto Windows CE in fase di rifinitura, quindi cerco di raccontare vantaggi/svantaggi di Qt in via di sviluppo a confronto a MFC.
Qt Vantaggi:

  • Nizza OOP disegno
  • supportato nativamente segnali/slot astrazione permette di sviluppare più rapidamente e facilmente
  • Qt supporta molte caratteristiche diverse (GUI, file system, networking, filettatura, ecc)
  • La licenza LGPL consente di sviluppare applicazioni commerciali gratuitamente
  • Codici di origine aperti, esempi, eccellente documentazione rende molto utile l'apprendimento della curva, molto stepper
  • Libreria multipiattaforma. Siamo stati in grado di eseguire la nostra applicazione su dispositivo e desktop con Vista OS senza problemi. Nel 4.6 Versione supporto Symbian è stato aggiunto

Qt svantaggi:

  • abbastanza grande binari (> 10 MB per core e modulo di Gui con tutte le caratteristiche "a", ma è possibile modificare edificio della biblioteca ed effettuare librerie più piccolo)
  • Big memoria e utilizzo della CPU a confronto a MFC

credo, che vantaggio principale di MFC a confronto a Qt è il suo minimo ingombro di memoria e CPU. Se questo non è un problema, scegli Qt.
P.S. La comunicazione della porta Com e il disegno della trama non sono inclusi nativamente in Qt, ma esistono librerie basate su LGPL Qt, che forniscono tali caratteristiche (ad esempio "Qwt" per la stampa).

+0

"La licenza LGPL consente di sviluppare applicazioni commerciali gratuitamente" - è giusto? Per l'applicazione commerciale, ti consiglio di acquistare una licenza molto costosa. – Narek

+0

No. La variante LGPL è esente da commissioni, ma come afferma LGPL, è necessario condividere qualsiasi modifica del codice Qt delle librerie. Se sceglierai una variante commerciale, puoi mantenere le modifiche chiuse. http://qt.nokia.com/products/licensing – cybevnm

1

Se si impara QT, sarete in buona posizione per scrivere il codice per tutti gli altri (Linux) piattaforme che vengono spinte dalle linee di Nokia, Intel e Google. Questo di per sé rende la tecnologia più appropriata per me!

Si può ancora avere a guardare ad altre biblioteche per alcuni degli altri aspetti del vostro codice, ma utilizzando QT per l'interfaccia grafica è mai andare a essere una cattiva scelta.

+0

a meno che non vogliate condividere il codice sorgente – ZeroCool

+0

Non è necessario condividere il codice sorgente con la licenza commerciale QT. La licenza LGPL QT obbliga solo a condividere le modifiche al codice sorgente Qt. –

+0

Non solo piattaforme Linux, anche Symbian. – e8johan

2

Primo vantaggio è che QT è una lib multipiattaforma. In secondo luogo, MFC è un mal di testa. Le cose più semplici da fare con MFC possono trasformarsi in un grosso problema . Quindi spostati da MFC al QT non appena è possibile.

2

Se si conosce MFC, attenersi ad esso: funziona correttamente per CE. Ci sono ovviamente alcune restrizioni rispetto a Desktop MFC, ma in genere non sono significative. Penso che il problema principale che abbiamo riscontrato è che la stampa non è supportata in MFC8 per CE (VS2005).

D'altra parte se si dispone di una tela bianca mi consiglia di andare per NET - C# o VB, a seconda di quale si sente più a proprio agio.

+0

Se non si dispone di contatori di memoria, C# è il più veloce TTM. Molto facile per la maggior parte delle applicazioni incorporate, ma la struttura compatta è un enorme memory hog. Ci sono anche alcune omissioni molto fastidiose nel CF esp se si proviene da uno sfondo di C# -desktop. – EndsOfInvention

+0

@EndsOfInvention: concordato, proveniente da un ambiente desktop .NET, il Compact Framework ha molti più difetti rispetto a .NET completo rispetto a MFC CE rispetto a Desktop MFC. – AAT

Problemi correlati