FAQ

Microsoft

Windows CE 5.0 アプリケーション のCE 6.0への移行
Q:

CE 5.0の MFC上で動作するアプリケーションをそのままCE 6.0に移行させた場合に発生する問題点など教えてください。
使用しております構成はARM系CPU Windows CE 5.0のスタンダードです(モバイルではありません)。
液晶の画面を持っておりCE5.0のグラフィックデバイスドライバがあります。移植を予定しているCE 6.0もARM系CPUでスタンダードとなります。

(1) 移植がアプリケーションのみとした場合
現在あるCE 5.0 MFC から CE 6.0 MFCでも移行は複雑でしょうか

(2) デバイスドライバのコールについて
今回ハードウエアが変わるため、デバイスドライバは作り直しとなります。

(3) CE 5.0では VirtualAlloc関数を使用して、アプリケーションから
CPUの管理するメモリを直接アクセスするなどして処理のオーバーヘッドを最小にするようにしておりましたがCE 6.0でも このような目的で VirtualAlloc関数は使用可能でしょうか?

A:

(1) 基本的にアプリケーションとしては5.0と6.0は互換性があります。
ドライバAPIとのインターフェイスは注意する必要がありますが、OSとの関係については、アプリ側で物理メモリに直接アクセスする等の特殊なメモリ操作をしていなければ動くはずです。
ただし6.0では、アプリケーションをビルドするツールがeMbedded C++ 4.0ではなく、Visual Studio 2005です。Visual StudioではSmartDeviceApplicationで作成、修正、デバッグをすることになります。

(2) アプリケーションからのコールについては、CE 5.0と同じアプリケーションをCE 6.0で動かすには、ドライバのAPIインターフェイスを同じ形にしておく必要があります。

(3) CE 6.0では5.0から内部メモリ管理が大幅に変更されましたので使い方に注意が必要です。
特にVirtualAllocについては、仮想空間での領域確保になります。
また、0x70000000 - 0x7fffffffの範囲にある共有ヒープアドレスには、アプリからアクセスできません。
CE 6.0でのメモリ管理については、以下をご参照ください。

Windows Embedded CE 6.0 Advanced Memory Management
http://msdn.microsoft.com/en-us/library/bb331824.aspx

関連キーワード