VS2005の組み込み開発機能オーバービュー:組み込み開発環境としてのVS2005(前編)(2/2 ページ)
もうすぐ出荷が開始されるVisual Studio 2005は、組み込みアプリケーション開発環境としても多くの改良や変更が施されている
VS2005によるマネージド/ネイティブコード開発
Windows CEのアプリケーションには、「マネージドコードアプリケーション」と「ネイティブコードアプリケーション」の2種類が存在する。
マネージドコードアプリケーションは.NET Frameworkのサブセットであるモバイル端末向けの「.NET Compact Framework」上で動作するアプリケーションである。実行モジュールには、「IL」と呼ばれる中間コードが格納されている。この中間コードは、.NET Compact Frameworkの「CLR」(Common Language Runtime)によって各ハードウェア固有のネイティブコードに変換された後に実行される。Windows CEでは前述の4種類のCPU(x86、ARM、SHx、MIPS)をサポートしているが、このCLRによってCPU命令の違いを吸収しているため、CPUごとに実行モジュールを用意する必要がない。それに対してネイティブコードアプリケーションは、サポートするプロセッサごとに実行モジュールを用意する必要がある。
またマネージドコードアプリケーションは、.NET Compact Frameworkで提供されるクラス群やCLRのガベージコレクションによるメモリリソース管理が利用できるという利点がある。ただし、利用できるのはNET Compact Frameworkが提供している機能のみであるため、例えばデバイス固有の処理など.NET Compact Frameworkでは提供されていない機能については、Plaform Invoke(P/Invoke)サービスなどを介してネイティブコードを呼び出して利用することになる。
eMbedded Visual C++の統合
これまでのVisual StudioとVS2005との大きな違いとして、ツールの構成が挙げられる。
「Visual Studio .NET 2003」(以下VS.NET2003)においては、Visual C#とVisual Basicが利用可能であった。Visual C#とVisual Basicでは、マネージドコードアプリケーションの開発が可能だ。Visual C++を利用する場合は、VS.NET2003とは別ツールとして用意されていた「eMbedded Visual C++」を使うことになる。ネイティブコードアプリケーションを開発できるのは、eMbedded Visual C++だけだった。
VS2005では、このeMbedded Visual C++がVisual Studioに統合されたことにより、Visual C#、Visual Basic、Visual C++が利用可能となった。こうして、VS2005単体でマネージド/ネイティブコードアプリケーションが開発できるようになった。
なお、マネージドコードアプリケーション開発では、.NET Compact Frameworkのバージョン1.0と2.0をサポートしている。デフォルトでSmartphone 2003、PocketPC 2003をサポートしているほか、いくつかの新しいコントロールが追加されている。
ネイティブコードアプリケーション開発では、既存のeMbedded Visual C++(3.0/4.0)プロジェクトをVS2005のVisual C++プロジェクトに変換するウィザードが追加されている。VS2005のVisual C++ IDEのメニューで[ファイル]−[開く]−[プロジェクト/ソリューション]をクリックし、既存のeMbedded Visual C++プロジェクトを選択するとそれがVS2005ワークスペースに変換される。
Mixed Mode Solutionsの実現
VS.NET2003では、すでにWindows XPなどのアプリケーション開発においてはマネージドコードアプリケーションとネイティブコードアプリケーションのプロジェクトを1つのソリューション内で管理できた。それに対してWindows CEのアプリケーション開発では、前述したようにeMbedded Visual C++とVisual Studioが統合されていなかったため、1つのソリューション内でマネージドコードアプリケーションとネイティブコードアプリケーションのプロジェクトを管理することはできなかった。
eMbedded Visual C++の統合でこの点も改善され、1つのソリューション内で両コードの管理(Mixed Mode Solutions)が可能となった。
VS2005の組み込み開発機能
エミュレータの使用と操作
Visual Studioには、物理的なターゲットデバイスを用いず、開発マシン(PC)上のエミュレータでWindows CE用のアプリケーションを実行する機能がある。VS2005では、インストール時点でPocket PC 2003 SEとSmartphone 2003エミュレータが利用可能となっている。このほかにも、Platform BuilderでエクスポートしたSDKに格納されているエミュレータも利用可能である。
また、Visual Studio IDEの[ツール]−[デバイス エミュレータ マネージャ]メニューで、「デバイス エミュレータ マネージャ」ダイアログボックスが表示される。このダイアログボックスでは、利用できるすべてのエミュレータの状態参照、エミュレータの起動、接続、リセットなどの操作が可能だ。
リモートデバッグとリモートツール
Visual Studioでは、ターゲットデバイスをPCに接続し、PC上からリモートでデバッグを行うことができる。この、PCとターゲットデバイスの接続について補足する。
VS.NET2003までは、イーサネットとシリアルポートが主な接続方法だった。これに対し、VS2005からはUSB、Wireless、IrDA、Bluetoothが利用できるようになった。接続方法はActiveSync、KITL、Platform Managerマニュアルサーバを利用する方法が考えられる。
eMbedded Visual C++やPlatform Builderには、Windows CEデバイスに接続して、リモートでデバイスの状態を監視するツールが同梱されている。Visual Studioにも、VS2005から以下のツールが追加された。
ツール | 概要 | |
---|---|---|
リモートファイルビューア | ターゲットデバイスに格納されているファイルの一覧を参照できる。また、ファイルをターゲットデバイスからダウンロードしたり、PCからアップロードすることも可能 | |
リモートヒープウォーカ | ターゲットデバイスのヒープ状態を参照できる | |
リモートプロセスビューア | ターゲットデバイス上で実行されているプロセスの情報を参照できる。また、起動しているスレッドについてもプロセスごとに参照できる | |
リモートレジストリエディタ | ターゲットデバイス上のレジストリ操作ができる。また、ターゲットデバイスへレジストリ情報をアップロードしたり、ターゲットデバイス上のレジストリ情報を編集できる | |
リモートスパイ | ターゲットデバイス上に表示されているウィンドウのメッセージやイベントの状態を監視できる | |
リモートズームイン | ターゲットデバイスの画面出力をPCの画面上に表示できる | |
表1 VS2005のリモートツール |
これらのツールを利用して、PCからデバイス上のアプリケーションの動作確認やデバッグ作業が行える。
前編では、VS2005の新機能や組み込み開発用の機能を紹介した。後編では、マネージドコードおよびネイティブコードアプリケーションそれぞれの開発の流れを多くのスクリーンショットとともに解説する。(後編に続く)
関連キーワード
Visual Studio | Windows CE | 組み込み | Windows XP Embedded | .NET Compact Framework | Windows Embedded
Copyright © ITmedia, Inc. All Rights Reserved.