アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 @IT > Master of IP Network > Mobile Connection > CE用Visual BasicとVisual C++でできること
 

eMbedded Visual Tools 3.0で
CE用データアクセスアプリケーションを作る(2)
CE用Visual BasicとVisual C++でできること

マイクロソフト アジア リミテッド
プロフェッショナル サポート本部
井上裕章
2001/8/7

今回のおもな内容
CPUに依存しない
eMbedded Visual Basic 3.0

ユーザーインターフェイスデザインの生成
コーディングの方法
デバッグをする
MFC/ATLを利用した開発が可能な
eMbedded Visual C++ 3.0
ウィザードでスケルトンを作成
MFC for Windows CE
ATL for Windows CE

 前回「eMbedded Visual Tools 3.0でCEアプリを開発」では、eMbedded Visual Tools 3.0に含まれる2つの言語製品、eMbedded Visual Basic 3.0とeMbedded Visual C++ 3.0が、それぞれVisual Basic 6.0とVisual C++ 6.0にとてもよく似た製品であることを紹介しました。

 では、この2つの言語製品には具体的にどんな機能があるのでしょうか? 興味を持った開発者の方も多いと思いますので、今回はこの2つの言語製品についてもう少し詳しく見ていきたいと思います。

 

CPUに依存しないeMbedded Visual Basic 3.0

 前回、IDEの画面イメージを紹介したので、Visual Basic 6.0にとてもよく似た環境であることは容易に想像できるでしょう。実際、eMbedded Visual Basic 3.0を使えば、Visual Basic 6.0で慣れ親しんだ手法を使って、広範囲にわたるWindows CEデバイス用のアプリケーションを短期間で作成、デバッグ、実行、配布することが可能です。しかし、その機能はまったく同じではなく、Windows CEの機能やデバイスの特徴に合わせて変更されています。その機能の違いを開発手順に合わせて見ていきましょう。

■ユーザーインターフェイスデザインの生成

 アプリケーションのユーザーインターフェイスデザインは、Form Designerを使い、コントロールをフォームにドラッグ&ドロップするだけで終了します。このとき、アプリケーションに必要な機能を持ったコントロールが多いほど、その後のコーディング量は減ってきます。リソースが制限されるWindows CEでは、Visual Basic 6.0に含まれるすべてのコントロールが用意されているわけではありませんが、Command ButtonやList Boxといった標準コントロールはもちろん、Common Dialog、Tree Viewなどのリッチなコントロールやコーディングに役立つWinSock、File Systemなど、Windows CEアプリケーションに必要な厳選されたコントロールが提供されています。

 以下は、Pocket PCをターゲットとした場合に使用可能なコントロールの一覧です。

組み込みコントロール
(VBランタイムに含まれる)
チェック ボックス (CheckBox)
コンボ ボックス (ComboBox)
コマンド ボタン (CommandButton)
フレーム (Frame)
ラベル (Label)
ライン (Line)
リスト ボックス (ListBox)
オプション ボタン (OptionButton)
スクロール バー (ScrollBar)
シェイプ (Shape)
テキスト ボックス (TextBox)
タイマー (Timer)
ActiveX コントロール
(DLLとして提供)
コミュニケーション (Comm)
コモン ダイアログ (CommonDialog)
ファイル システム (FileSystem)
Finance
グリッド (Grid)
イメージ (Image)
イメージ リスト (ImageList)
リスト ビュー (ListView)
メニュー バー (MenuBar)
ピクチャ ボックス (PictureBox)
タブ ストリップ (TabStrip)
ツリー ビュー (TreeView)
Winsock
表1 使用可能なコントロールの一覧

■コーディングの方法

 コーディングを行うときの操作として、例えばCommand Buttonが押されたときのコードを記述する場合、Command Buttonをダブルクリックすることで、エディタが起動し、該当の関数の部分にカーソルが移動します。さらに、入力した関数や構文のエラーチェック、パラメータ情報などを提供するIntelliSenseテクノロジーなど、一連の動作はVisual Basic 6.0とまったく一緒です。

 一方、言語仕様を見てみると、eMbedded Visual Basic 3.0で使われる言語は、Visual Basic 6.0のサブセットであり、すべての言語仕様を含んだものではありません。例えば、使用できるデータ型は、バリアント(Variant)型のみに限られるといった制限があります。

 さらに、大きな特徴の1つとして、実行可能ファイル(.exe)が作成できないことが挙げられます。作成したアプリケーションは、中間ファイル(.vb)としてビルドされ、その中間ファイルをデバイス上でコマンドインタープリタ(pvbload.exe)が解釈し、実行されます。作成したアプリケーション(.vb)は、CPUに依存しないため、どのCPUのデバイス上でも実行できるという利点があります。

■デバッグをする

 前回「作成したアプリケーションは、ActiveSyncを介してデバイス上にダウンロードする」と紹介しましたが、これを実現するために自動ダウンロードと呼ばれる機能が用意されています。その名のとおり、作成したアプリケーションを自動的にデバイス上にダウンロードする機能ですが、これにより手作業でコピーをする手間を省いています。

 アプリケーションのデバッグは実際のデバイス上だけでなく、エミュレータと呼ばれるWindows 2000などで動作する仮想デバイス上でも行うことができます。ただし、Pocket PCおよびHandheld PC 2000用のエミュレータについては、eMbedded Visual Tools 3.0 日本語版では提供されていません。

 デバイス上にダウンロードされたアプリケーションは、eMbedded Visual Basic 3.0のIDE上でデバッグが可能です。ブレークポイントの設定やステップごとの実行、変数のウォッチなど、豊富なデバッグ機能を備えていますので、バグの検出や動作確認に大きく貢献するものと思います。

 また、スパイやプロセスウォーカーといったなじみのあるツールが、リモートツールとして用意されています。これらは、eMbedded Visual Basic 3.0、eMbedded Visual C++ 3.0のどちらからでも使用することができ、デバイスの状態をリアルタイムに確認することができます。なお、eMbedded Visual Basic 3.0には、アプリケーションインストールウィザードと呼ばれるインストールパッケージを作成するためのウィザードや、コントロールマネージャーと呼ばれる、デバイス上のコントロールを登録、削除できるツールも用意されています。

リモートツール名 内容
ヒープウォーカ リモートデバイスで実行中のプロセスのヒープIDおよびフラグに関する情報を表示します。
プロセスビューア Windows CEプロセスおよびスレッドの情報を表示します。メモリの利用状況を表示したり、メモリリークを探すこともできます。
レジストリエディタ デスクトップコンピュータから、リモートデバイスのレジストリエントリを操作します。
ファイルブラウザ Windows CEリモートファイルビューアを開きます。
スパイ リモートデバイスで処理中のウィンドウおよびウィンドウメッセージを、デスクトップコンピュータに表示します。
ズーム リモートデバイスからイメージをキャプチャし、デスクトップコンピュータに表示します。
デバイスの構成 Windows CEデバイスとエミュレータへの接続を管理します。
コントロールマネージャ コントロールファイルをデバイスにダウンロードします。
アプリケーションインストールウィザード アプリケーションを実行するために必要なすべてのコンパイルファイルおよびコントロールファイルを含むインストールプログラムを作成します。
表2 リモートツール一覧

 

MFC/ATLを利用した開発が可能な
  eMbedded Visual C++ 3.0

 eMbedded Visual C++ 3.0は、Windows CEが提供するAPIを使用することにより、デバイスやWindows CEのすべての機能を生かしたアプリケーションを開発することができます。もちろんAPIを直接呼び出すだけではなく、Visual C++の特徴である、MFC(Microsoft Foundation Classes)、ATL(Active Template Library)を使用したアプリケーション開発も可能になっています。

 IDEの操作性がVisual C++ 6.0に似ていることは、eMbedded Visual Basic 3.0の紹介から想像されるとおりです。 また、デバッグ時の自動ダウンロード機能などについてもeMbedded Visual Basic 3.0と同様で重複しますので、ここではウィザード、MFC、ATLの特徴について紹介していきます。

■ウィザードでスケルトンを作成

 Visual C++ 6.0では、作成するアプリケーションの仕様に合わせて、スケルトンを作成するためのウィザードが用意されていますが、eMbedded Visual C++ 3.0においてもプロジェクトウィザード(表3)が提供されており、目的とするプロジェクトを選択してアプリケーションのスケルトンを作成することができます。中でも[WCE Pocket PC Application]、[WCE Pocket PC MFC AppWizard(exe)]の2つは、Pocket PC向けのアプリケーションを開発するための専用のプロジェクトウィザードとして新しく提供されたものです。

スケルトンを作成するためのウィザード
WCE Application
WCE ATL COM AppWizard
WCE Dynamic-Link Library
WCE MFC ActiveX Control Wizard
WCE MFC AppWizard (dll)
WCE MFC AppWizard (exe)
WCE Pocket PC Application
WCE Pocket PC MFC AppWizard (exe)
WCE Static Library

■MFC for Windows CE

 MFCライブラリは、成熟した総合的なクラスライブラリであると同時に、完全なオブジェクト指向のアプリケーションフレームワークで、Windows CEのアプリケーション、コンポーネント、およびコントロールの構築に役立つように設計されています。従ってMFC for Windows CEを使用すると、単純なダイアログボックスベースのアプリケーションから、完全なMFCドキュメント/ビューアーキテクチャを用いた高度なアプリケーションまで作成できます。また、MFC for Windows CEを使用して、完全装備のMicrosoft ActiveXコントロールとActiveXコンテナを作成することもできます。

 ただし、デスクトップ用MFCライブラリのすべてのクラスをサポートしているわけではありません。例えば、複数文書インターフェイス(MDI)、OLEドラッグ&ドロップ機能、リッチエディットコントロールなどはサポートしていません。また、デスクトップWindowsでサポートされているコントロールとコモンダイアログボックスの一部、およびその他のいくつかの機能もサポートしていません。これらの制限事項に関しては、eMbedded Visual C++ 3.0のヘルプに詳細な記載がありますので、開発の前に必要なクラスがサポートされているかを確認することをお勧めします。

■ATL for Windows CE

 ATL for Windows CEは、小さくて高速のMicrosoft ActiveXサーバの作成をサポートするために設計されたC++テンプレートライブラリです。ATL for Windows CEは、ActiveXコントロールおよびそのほかのCOMコンポーネントの作成を目的として設計されているので、開発するATLコンポーネントはプロジェクトで必要となる特定のインターフェイスを実装するだけでかまいません。これにより、ATLを使用すると、MFCで同等の機能を持つプロジェクトをプログラミングする場合に比べて、より小さく高速で効率のよいプログラムを作成できます。さきほど紹介したウィザード[WCE ATL COM AppWizard]を使うことで、基本となるソースコードが生成されます。

 またMFCと同様、デスクトップ用ATLライブラリの機能をすべてサポートしているわけではなく、Windows CEのために合理化したサブセットを提供しています。従って、非同期モニカ、スナップインオブジェクト、アパートメントスレッド、インプロセスでないサーバはサポートされていません。また、メソッドのいくつかを提供していないクラスもありますので、事前にヘルプで確認する必要があります。

補足
 残念ながら、eMbedded Visual Basic 3.0とeMbedded Visual C++ 3.0のすべての機能を紹介することはできませんでした。 さらに詳しい情報を得るには、以下のWebページをご覧下さい。 「Embedded Developerドキュメント」のツリーを開いていくと、その豊富な機能を確認することができます。
http://www.microsoft.com/japan/developer/library/default.asp

 次回は、eMbedded Visual Basic 3.0とADOCEを使ったデータベースアクセスアプリケーションのサンプルを作ります。

次回の掲載は8月下旬ごろになります


「連載 CE用データアクセスアプリケーションを作る」


 


 
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

   
@ITトップMobile Connectionフォーラム トップ会議室利用規約プライバシーポリシーサイトマップ