Windows mobile game development tools
Audience
This article is suitable for advanced programmers who have never written any Windows Mobile application before and want to start with it. Reader should be familiard with C++ or some similar language, since the C++ language constructs will not be explained here. I assume you understand OOP and WinAPI.
Options
What are the options for Windows mobile game developer?
- Modern MS Visual Studio, eg. 2008, not express edition
- Non-MS compilers, eg. CeGCC - also for linux
- SharpDevelop - C#
- Microsoft eMbedded Visual C++ 4.0
- Others
We will be using MS EVC++ 4.0 in the rest of this article.
Download and install
Download and install these three programs:
- Microsoft eMbedded Visual C++ 4.0
- Microsoft eMbedded Visual C++ 4.0 SP 4
- SDK for Windows Mobile 2003-based Pocket PCs
- ActiveSync
All these programs are free, the first one needs a CD key which you can find on the download page (it is TRT7H-KD36T-FRH8D-6QH8P-VFJHQ). The last time I chcked EVC++ was not working on Windows 7.
Compile
Let's just compile our first program.
- Create a new project: File > New

Select WCE Pocket PC 2003 Application, enter some Project name and press OK

Select A typical "Hello World!" Application and press finish - A new project is created now. Most likely, a wrong SDK is selected, so select the right one

Select also whether you want to compile for a real device or for an emulator - Build > Build tutor01.exe (F7), then Build > Execute tutor01.exe (Ctrl-F5). It is possible there will be some warnings during the compilation (eg. CE Platform Pocket PC 2003 does not match remote OS version 502), you can ignore them.
Problems
- Emulator is disabled because it is not stable
There is following warning during the installation and every time you start Windows: "Virtual PC/Windows CE Emulator. A driver is installed that causes stability problems with your system. This driver will be disabled." If you don't need emulator, you can just ignore it. But if you want to use it just read an article about how to solve this problem.
Discussion: