VS2005の組み込み開発機能オーバービュー組み込み開発環境としてのVS2005(前編)(2/2 ページ)

» 2005年12月06日 00時00分 公開
[松井 俊訓/杉本 拓也 富士通ソフトウェアテクノロジーズ,@IT MONOist]
前のページへ 1|2       

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)が可能となった。

マネージドコード/ネイティブコードの統合管理 画面2 マネージドコード/ネイティブコードの統合管理

VS2005の組み込み開発機能

エミュレータの使用と操作

 Visual Studioには、物理的なターゲットデバイスを用いず、開発マシン(PC)上のエミュレータでWindows CE用のアプリケーションを実行する機能がある。VS2005では、インストール時点でPocket PC 2003 SEとSmartphone 2003エミュレータが利用可能となっている。このほかにも、Platform BuilderでエクスポートしたSDKに格納されているエミュレータも利用可能である。

 また、Visual Studio IDEの[ツール]−[デバイス エミュレータ マネージャ]メニューで、「デバイス エミュレータ マネージャ」ダイアログボックスが表示される。このダイアログボックスでは、利用できるすべてのエミュレータの状態参照、エミュレータの起動、接続、リセットなどの操作が可能だ。

[デバイス エミュレータ マネージャ]ダイアログボックス 画面3 [デバイス エミュレータ マネージャ]ダイアログボックス

リモートデバッグとリモートツール

 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の新機能や組み込み開発用の機能を紹介した。後編では、マネージドコードおよびネイティブコードアプリケーションそれぞれの開発の流れを多くのスクリーンショットとともに解説する。(後編に続く)


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.