BREW プログラミング入門(2)
|
項目名 | 機能 |
File | ファイル入出力機能 |
Network | ネットワーク通信機能 |
Database | データベース機能 |
TAPI/SMS | 電話制御/ショート メッセージ機能 |
Sound | サウンド機能 |
これらの機能を選択すると、自動生成されるソースコードにこれらの機能を提供するAPIのヘッダーファイルがインクルードされます。あとからソースコードに手動でインクルードできるので、必ずしも今の段階で指定する必要はなく、また実際に使わない機能を選択しても特に害はありません。
今回は "Hello World" と表示するだけの単純なアプリケーションですので、いずれの機能も使用しません。何も選択せずに [次へ] ボタンを押しましょう。
5)ウィザードの [ステップ 2/2] では、中央にある [MIF Editor] というボタンを押すことで、MIFエディタが起動し、MIFファイルを作成することができます。
MIFファイルは既に作成したので、ここではなにもせずに [終了] ボタンを押すことにしましょう。
6)これでウィザードが終わりました。最後に [新規プロジェクト情報] ダイアログが表示されるので、[OK] ボタンを押しましょう。
これでBREWプロジェクトが作成されました。
BREWプロジェクトの内容
BREWアプリケーション ウィザードが生成したファイルを調べてみましょう。Visual C++の左側の [FileView] タブを見ると、三つのファイルがプロジェクトに追加されているはずです。
BREW Application Wizardで生成されたファイル
まずAEEAppGen.c と AEEModGen.cですが、このファイルの中身を知る必要はあまりありません。また、このファイルを編集してはいけません。
[FileView] の AEEAppGen.cを右クリックして、メニューから [プロパティ] を選択してみてください。[コピー元 ファイル プロパティ] ダイアログの[ファイル名] が "C:\Program Files\BREW SDK v2.1.1 Ja\src\AEEAppGen.c"のようになっており、BREW SDKをインストールしたフォルダ内にあることが分かります。
つまり、この二つのファイルは、BREWアプリケーション ウィザードで生成した複数のBREWプロジェクトから共有されるソースコードですので、不用意に編集してはいけないのです。
開発者が編集できるのは HelloWorld.c だけです。ここにHelloWorldアプレットの実装を記述します。[FileView] で HelloWorld.c をダブルクリックして、このファイルを開いてみましょう。
何やらごちゃごちゃと英語でコメントが書いてあるのが分かります。英語のコメントを削除したものを以下に示します。
|
BREWウィザードが生成したコードは、AEEClsCreateInstance() と HelloWorld_HandleEvent()という二つの関数であることが分かります。
AEEClsCreateInstance() は、ユーザーがBREWアプレットのアイコンを選択して起動したときに呼び出される関数です。開発者はこの関数内でBREWアプレットのデータ構造体を作成して返す必要があります。
HelloWorld_HandleEvent() は、ユーザーが携帯電話のキーを押したり、アプリを終了させたりなど、さまざまな操作を行ったときに呼び出される関数です。
BREWアプレットの構造
BREWアプレットは、“アプレット構造体”と “イベント ハンドラ”のペアで構成されます。アプレット構造体とは、BREWアプレットがデータを格納するための構造体で、そのアプレットでグローバルに使用する変数などを格納しておきます。BREWウィザードが生成したコードでは、デフォルトで AEEApplet 構造体が使用されています。この構造体の詳細については次回以降の連載で解説しますので、今回は説明しません。
イベント ハンドラとは、BREW実行環境からのさまざまな通知を受け取る関数で、ユーザーがキーを押したときなどに呼び出されます。BREWウィザードが生成したコードでは、デフォルトで HelloWorld_HandleEvent() 関数が使用されています。
BREWアプレットの構造
補足:生成されたコードではBREWアプレットのデータ構造体としてAEEAppletを使用していますが、これは (ある規則に従った) 任意の構造体に置き換えることができます。今回のHelloWorldアプレットではAEEAppletをそのまま使うことにします。
BREWアプレットの作成
ユーザーが携帯電話のBREWアプレットの一覧からアイコンを選択して起動すると、BREW実行環境は、AEEClsCreateInstance() 関数を呼び出してBREWアプレットを作成するように要求します。
AEEClsCreateInstance() 関数では、要求されたBREWアプレット構造体を作成して返す必要があります。一つのBREWモジュールには複数のBREWアプレットを含めることができるため、個々のBREWアプレットを区別するために、1番目の引数にクラスIDを指定して呼び出してきます。
AEEClsCreateInstance() 関数に指定されたクラスIDが、あなたが開発しているBREWアプレットに等しい場合にだけ、そのBREWアプレットを作成して返します。
これを実現しているのが、BREWウィザードが生成した下記のコードです。
|
このコードでは、BREW実行環境がAEECLSID_HELLOWORLDというクラスIDのBREWアプレットを要求してきた場合だけ、アプレット構造体を作成して返しています。
アプレット構造体の作成は AEEApplet_New() という関数を呼び出すことで行います。この関数は、AEEApplet構造体のメモリを確保し、AEEApplet構造体にイベント ハンドラである HelloWorld_HandleEvent() を結びつけることでアプレット構造体を作成しています。
そうそう、HelloWorldのクラスIDをソースコードで使用しているため、ソースコードに HelloWorld.bid ファイルをインクルードする必要があります。HelloWorld.c の冒頭に、
#include "HelloWorld.bid"
と書いておいてください。
[倉谷智尋, ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.
最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!
最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!