Loading
|
@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
前回「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つの言語製品についてもう少し詳しく見ていきたいと思います。
前回、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をターゲットとした場合に使用可能なコントロールの一覧です。
■コーディングの方法 コーディングを行うときの操作として、例えば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を介してデバイス上にダウンロードする」と紹介しましたが、これを実現するために自動ダウンロードと呼ばれる機能が用意されています。その名のとおり、作成したアプリケーションを自動的にデバイス上にダウンロードする機能ですが、これにより手作業でコピーをする手間を省いています。
デバイス上にダウンロードされたアプリケーションは、eMbedded Visual Basic 3.0のIDE上でデバッグが可能です。ブレークポイントの設定やステップごとの実行、変数のウォッチなど、豊富なデバッグ機能を備えていますので、バグの検出や動作確認に大きく貢献するものと思います。 また、スパイやプロセスウォーカーといったなじみのあるツールが、リモートツールとして用意されています。これらは、eMbedded Visual Basic 3.0、eMbedded Visual C++ 3.0のどちらからでも使用することができ、デバイスの状態をリアルタイムに確認することができます。なお、eMbedded Visual Basic 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向けのアプリケーションを開発するための専用のプロジェクトウィザードとして新しく提供されたものです。
■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とADOCEを使ったデータベースアクセスアプリケーションのサンプルを作ります。 次回の掲載は8月下旬ごろになります
|
|
|
Copyright © ITmedia, Inc. All Rights Reserved.
|