準備
Windows CEのアプリケーションをC++で開発するためには、従来までeMbedded Visual C++と言うソフトウェアが使われていました。Visual Studio 2005ではStandard EditionからWindows CEやWindows Mobileのアプリケーションを開発できるようになりました。Visual Studio 2005付属のWindows MoibleのSDKは一つ前の2003のものなので、開発の準備としてSDKを入れるところからスタートします。
これがインストールされればVisual Studio 2005上で新しいプロジェクトを作成する際に、スマートデバイスプロジェクトでプラットホームとして「Windows Mobile 5.0 for PocketPC」(以下、場合によって「PocketPC」と表記)を選択できるようになります。
SDKにはDirect3D Mobileのサンプルも5つほど収録されており、基本的なことを学ぶことができます(コメントは英語)。サンプルについては、MSDNに記載があります(英語)。
さらに、もう1つインストールしておくべきものがあります。それは、エミュレータの日本語版のOSイメージです。PocketPCは、基本的にPCと異なるアーキテクチャのCPUが搭載されているので、そのままではプログラムが動きません。そこで、PCでエミュレーションしてプログラムを動かし、あらかじめデバッグするようにします(これにより実機がなくてもテストができますが、当然実行速度は実機に比べると大きく差があります)。上記のSDKを入れた段階で、エミュレータもインストールされるのですが、英語版のため日本語フォントがなく、日本語の表示ができません。そこで、「Localized Windows Mobile 5.0 Pocket PC Emulator Images」から「Windows Mobile 5.0 Emulator Images for Pocket PC - JPN.msi」をダウンロードして、日本語版のOSのイメージを取得します。セットアップはインストーラを実行するだけで終わります。
最後に、これは既にPocketPCとの同期ができる開発環境にある人はインストールしなくてよいのですが、実機を持っていない方などは、「Windows Mobile Deviceのダウンロードページ」からActiveSync(バージョン4.0以降)というソフトウェアをダウンロードし、インストールする必要があります。
ActiveSyncは、PCとPocketPCの間の接続を行うソフトウェアで、スケジュールや電話帳の同期や、PCとPocketPC間の接続を通したアプリケーションのインストールなどを行います。実機と接続しない場合でも、Visual Studio 2005でビルドしたファイルを実行するために、エミュレータへ転送する際に使ったりするのでインストールしておく必要があります。余談ですが、ActiveSyncは、タスクバーに常駐するのですが、実機と接続しないPCでの開発時には常駐を解除してしまっても問題ありません。
開発のスタート
プロジェクトの選択
PocketPCのアプリケーションを開発するには、Visual Studio 2005の[プロジェクトの種類]で、[Visual C++]から[スマートデバイス]を選択します(他の言語の場合でも同じく[スマートデバイス]があります)。
その後に出てくるダイアログでは、[プラットホーム]を選択します。ここでは、完成したプログラムを実行するOSのバージョンを決めます。Direct3D Mobileは、Windows Mobile 5.0から加わったAPIなので下の画像のように[Windows Mobile 5.0 PocketPC SDK]のみを選択します。
あとは、必要に応じてアプリケーションの設定を行います。アプリケーションの種類は、デフォルトのまま[Windowsアプリケーション]を選択します。
[空のプロジェクト]のチェックボックスにチェックをつけなければ、このあとに単純なウィンドウを表示するだけのコードが生成されます。

エミュレータの設定
プロジェクトが作れたら、次はエミュレータの設定をします。エミュレータは、デフォルトではQVGAサイズ(解像度が240x320)の英語版OSを起動するので、ここではそれを日本語版に変更する方法を説明します。
Visual Studio上でエミュレータに関するツールバーは、メニューバーの[表示]メニューの[ツール バー]-[デバイス]で出し入れすることができます。

- OSの選択
- デバイスへの接続、デバイスオプション
- 画面の回転
OSの選択ですが、[JPN Windows Mobile 5.0~]というのが日本語版のOSになります。それ以外は英語版です。"Phone"と付くのは、電話機能があります。"VGA"と付くのは、解像度が480x640で、付かないのは320x240です。"Square"は縦横比が1:1の解像度のものになります(無印が、240x240でVGAが480x480)。
[Windows Mobile 5.0 PocetPC Device]というのが表示される場合があるのですが、これはActiveSyncで接続しているデバイス上での実行を意味します。これを選択すると接続中の実機でデバッグができます。実機では、エミュレータ上では検出されないハードウェア固有のバグが発生することがありえますので、エミュレータの結果だけを信じることはできないことがあります(Direct3D Mobileではハードウェアごとに使える機能に大きく差が出ます)。
デバイスの接続アイコンを押すとエミュレータが起動します。デバイスオプションは既定のデバイスなどの設定や、OSごとの細かな設定などができます。



