プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

W-ZERO3: アプリ開発のTipsとか(1)


W-ZERO3用のアプリを書いていて気がついたことをメモしてみました。今後アプリを作られる方の参考になれば幸いです。

eMbedded Visual C++のインストール


W-ZERO3はOSとしてWindows Mobile 5.0を採用している。WM5.0はWindows CE 5.0がベースになので、アプリ開発にはCE用の開発環境を使う。


WM5.0の開発環境としてはVisual Studio 5.0またはeMbedded Visual C++がある。Visual StudioはStandard以上のバージョンが必要。残念ながらExpressではWMアプリの開発はできないので注意しよう。


eVC++はマイクロソフトのサイトの以下のリンクから無料でダウンロード可能だ。eVC++はPocketPC 2003というWM5.0より前のバージョン用の開発環境だが、普通のアプリ作成には十分使える。


eMbedded Visual C++ 4.0
eMbedded Visual C++ 4.0 Service Pack 4 (SP4)
Pocket PC 2003 日本語版 SDK


最低限これだけで開発可能。PCからW-ZERO3への転送はActiveSync 4.1を使うか、miniSD経由でもOK。
あと、あったらいいもの。


Emulator Images for Windows Mobile 2003 Second Edition-based Pocket PC Development - VGA対応アプリをテストできるエミュレータ
Developer Resources for Windows Mobile 2003 Second Edition - サンプルコードや開発のTipsなどが入っている


以降このeVC++を元にした開発のTipsについて説明していく。

コンパイルと実行・デバッグ


まずはHello Worldから。eVC++の新規作成でPocket PC 2003のプロジェクトを選び、Hello World applicationを作成する。ツールバーのPPC2003, Emulator Debug, PPC2003 Emulatorを選んでBuildすると、PC上のエミュレータ上で実行可能なEXEができる。エミュレータ上ではデバッガを使ってソースレベルのデバッグができるので、デバッグはかなり楽。


エミュレータ上でデバッグが終了したら、先ほどのツールバーからARMV4 Releaseを選んでBuildすれば、W-ZERO3上で実行可能なEXEが出来る。後はEXEをActiveSyncやMiniSDなどを使ってW-ZERO3に転送し、エクスプローラ等から実行すれば、アプリの出来上がり。

プログラムの基本


基本的にWindows Mobileのプログラミングは、Windowsプログラムとほぼ同じ。Window制御やグラフィックスなどの考え方はそのまま使える。Win32APIを基本に、MFCや各種サービスが用意されている。Visual Studio 2005を使えば、C#や(サブセット版だが).NET frameworkが利用可能になるだろう。


ただ、Windowsにあっても、WM5.0にはないAPIというのも多い。さらに、同じAPIがあっても、未サポートのパラメータもある。基本は同じでも、Windowsプログラムを再コンパイルして、そのまま実行できるとは考えない方がいい。メモリもストレージも限られているPDAなのだから、Windowsプログラムをそのまま移植するのではなく、実現すべき機能のみに着目し、WM5.0用にデザインしなおすのがよいと思われる。


さらにWindowsとは違う、Windows Mobile固有のAPIも多くある。特にShellまわりが拡張されているので、まずはサンプルコード等を見ながら学習されることをお勧めする。

参考になったサイト


Windows Mobileのプログラミングに関しては、以下のサイト等を参考にさせていただきました。有用な情報を提供いただいたサイト作成者の方々に感謝いたします。


ソフト開発について - W-ZERO3 Wiki
WindowsCE開発者向け情報 - WindowsCE FAN
Pocket PCの部屋 by I.N.
Windows Mobile - デベロッパー - Microsoft


(続く)