BREW プログラミング入門(4)
|
|
BREWの文字列操作
BREWの文字列もC言語の文字列と同じです。ただし、BREWではC言語の標準関数を使ってはいけないことになっています。その代わり、C言語の標準関数と同等のことを行う“ヘルパー関数”が用意されています。
BREWのヘルパー関数は、「BREW APIリファレンス」の「ヘルパー関数」というセクションに記載されています。参考までに、文字列に関するヘルパー関数をいくつか抜き出して表にしてみました。
関数名 | 対応するC関数 | 説明 |
MALLOC | malloc | メモリを確保します。 |
FREE | free | メモリを解放します。 |
SPRINTF | sprintf | 書式化された文字列を作成します。 |
STRCMP | strcmp | 文字列を比較します。 |
STRCPY | strcpy | 文字列をコピーします。 |
STRDUP | strdup | 文字列を複製します。 |
STRLEN | strlen | 文字列の長さを取得します。 |
DBGPRINTF | printf | デバッグ出力を行います。 |
BREWヘルパー関数にはほかにもいろいろな関数があり、C言語標準関数に対応しない関数も用意されています。リファレンスに一通り目を通しておくことをお奨めします。
BREWヘルパー関数は、BREW SDKの AEEStdLib.hというヘッダで宣言されていますので、使用する場合はこのファイルをインクルードする必要があります。
上記のBREWヘルパー関数を使用した文字列操作の例を以下に示します。C言語の文字列操作とほとんど同じですね。
|
デバッグ出力について
上記のコードでは、C言語のprintf() 関数に対応するヘルパー関数として、DBGPRINTF() を使用しています。この関数の使い方はprintf() とほとんど同じですが、出力はコンソール(BREWにそんなものはない!)に表示されるのではなく、BREWエミュレータの“出力ウィンドウ”に表示されます。
BREWエミュレータの“出力ウィンドウ”は、メニューの[表示]-[出力ウィンドウ]を選択することで表示されます。
この関数は、BREWアプリをデバッグするときに非常に便利です。また、携帯電話実機で動作しているBREWアプリからもDBGPRINTF() により表示を行えるので、実機でのデバッグが効率的に行えます。
実機からのデバッグ出力を表示するには“BREW Logger”というツールを使いますが、これに関しては本連載では触れないことにします。
BREWエミュレータの出力ウィンドウ
注意していただきたいのは、デバッグ出力は開発者が DBGPRINTF() で出力したもの以外にもいろいろあるということです。上記画面のように、BREWエミュレータを操作しているだけでも、さまざまな情報が出力されていることがわかります。
BREWの2つの文字型
BREWの文字列がC言語のそれと同じものであることを見てきましたが、実はBREWにはもう一つ、C言語の文字列とは異なる文字列があります。C言語のchar型は1バイトの文字ですが、BREWにはAECHAR型という2バイト文字を格納する型があります。これを“ワイド文字”といいます。
AECHAR型の文字列を作成するには、STREXPAND() ヘルパー関数を使用します。STREXPAND() 関数は、char文字列をAECHAR文字列に変換します。「BREW APIリファレンス」には以下のように記述されています。
|
※byte型はBREWで定義されている型で、unsigned charに同じです。
BREWプログラミングにおいてAECHAR型はいたるところに現れてきますので、STREXPANDを使いこなせるようになっておきましょう。以下にサンプルコードを示します。このサンプルは、本連載第1回で作成したHelloWorldアプリを、日本語を表示するように変更したものです。
|
IDISPLAY_DrawText() 関数は、描画するテキストをAECHAR文字列として受け取るため、STREXPAND() 関数を使用してchar文字列からAECHAR文字列を作成しています。
その際、元のchar文字列の長さと同じ長さのAECHAR文字列バッファを確保しています。描画が終わればAECHAR文字列は不要になりますので、FREE() 関数によりバッファを解放しています。
※C言語だけでchar文字列とAECHAR文字列を相互変換することは、BREWプログラミングにたいへんな苦痛をもたらします。BREWの文字列関数をラップしたC++クラスを用意することで、飛躍的にプログラミングが楽になりますが、本連載ではC++については扱いません。
ワイド文字の操作関数
BREWヘルパー関数には、ワイド文字を操作するための関数も用意されています。以下の表にいくつか抜き出しました。詳細は「BREW APIリファレンス」を参照してください。
関数名 | 対応するC関数 | 説明 |
WSPRINTF | sprintf | 書式化された文字列を作成します。 |
WSTRCMP | strcmp | 文字列を比較します。 |
WSTRCPY | strcpy | 文字列をコピーします。 |
WSTRDUP | strdup | 文字列を複製します。 |
WSTRLEN | strlen | 文字列の長さを取得します。 |
STREXPAND | なし | char文字列をワイド文字列に変換します。 |
WSTRCOMPRESS | なし | ワイド文字列をchar文字列に変換します。 |
STREXPAND() とは逆に、AECHAR文字列をchar文字列に変換するには、WSTRCOMPRESS() 関数を使います。
[倉谷智尋, ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.
前のページ | 1/2 | 次のページ
最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!
最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!