Is the transition from MFC to QT or WTL (or other GUI tools) recommended for developing Windows CE?

There are quite a few questions related to C ++ GUI tools for Windows, but they mostly apply to desktop OS versions.

Now I am starting a C ++ project for a Windows CE 5.0 VGA portable device and thinking about which graphics library to choose. I have experience using MFC in Windows CE projects, but there are some known MFC weak points mentioned here in SO (for example, fairly outdated technologies, poor abstraction, excessive use of the C ++ preprocessor, etc.). For desktop projects, they recommend QT and WTL mainly. At the same time, MFC has some characteristics that are still significant for embedded development.

So, how do you think, is it wise to spend some resources on learning the new GUI tools for switching from MFC, and what tools would you recommend in this case? Or is MFC still the most significant for Windows CE embedded development?

The most important characteristics of the toolkit are: moderate processor and memory load, small runtime, good object-oriented design, compliance with good modern C ++ practices, steep learning curve, development speed, commercial look, convenient debugging and design tools,

(What is needed in the project: serial port communication, streams, graphs and charts, ActiveSync communication.)

+7
c ++ user-interface windows-ce embedded
source share
4 answers

We have Qt 4.5 on Windows CE 5.0 at the final stage, so I'm trying to talk about the advantages / disadvantages of Qt development compared to MFC.
Qt Advantages:

  • Nice OOP Design
  • Corrected signal / slot abstraction allows faster and faster development
  • Qt supports many different functions (graphical interface, file system, network, streams, etc.).
  • The LGPL license allows you to develop a commercial application for free.
  • Open source codes, examples, excellent documentation greatly complicate the learning curve, a lot of stepper
  • Multi-platform library. We were able to run our application on the device and on the desktop with Vista without any problems. Version 4.6 adds support for Symbian.

Qt Cons:

  • Quite large binaries (> 10 MB for the Core and Gui module with all the "on" functions, but you can configure the library and reduce the number of libraries).
  • Bigger memory and CPU usage compared to MFC

I think the main advantage of MFC over Qt is its minimal memory and processor. If this is not a problem, select Qt.
PS The communication port and graphic drawing are not included in Qt, but there are LGPL Qt libraries that provide you with such features (such as the Qwt example for plotting).

+8
source share

The first advantage is that QT is a cross-platform lib library. Secondly, MFC is a headache. The simplest things related to MFC can lead to a big problem . So go from MFC to QT as soon as possible.

+2
source share

If you know MFC, stick with it: it works great for CE. There are, of course, some limitations compared to the desktop MFC, but they are usually not significant. I think the main problem that we found is that printing is not supported in MFC8 for CE (VS2005).

On the other hand, if you have an empty canvas that I would recommend for .NET, either C # or VB, depending on what you like best.

+2
source share

If you learn QT, you can write code for all other (Linux) platforms that are pushed by the lines of Nokia, Intel and Google. That alone makes it the most suitable technology for me!

You still have to look for other libraries for some other aspects of your code, but using QT for the GUI will never be a bad choice.

+1
source share

All Articles