Tech Note 17: HostTraceLib共有ライブラリを使う

Jan 27, 2002

© NS BASIC Corporation. All rights reserved.


[英語版]  

(Adrian Nicolaiev氏による寄稿)

NSBHostTraceLibは、あなたのアプリケーションをトレースするための便利な関数をNS Basic/Palmに追加します。これを使うとMsgBoxを使う必要がありません。あなたがトレースしている間、アプリケーションは実行され続けます。

これを使うためにはPOSEにNSBHostTraceLib.prcをダウンロードしなくてはなりません。これは小さなファイルでサイズは約1.4kです。起動するにはStartup codeで以下のことを行います:

Dim Error as Integer
LoadLibrary "NSBHostTraceLib","HT" 'case is important
Error = HT.NSBHostTraceInit()

Termination codeに以下のラインを入れるのを忘れないで下さい。これによって終了します。

Error = HT.NSBHostTraceClose()

さらに"Reporter"についてのインストラクションをダウンロード(370k)し手順を理解して下さい。
http://www.palmos.com/dev/support/docs/devguide/UsingReporter.html

Reporter.exeを\nsbasic\toolsフォルダに入れて下さい。PalmTrace.dllをあなたが使っているEmulator.exeが入っているフォルダに入れて下さい。

NS BasicからのビルトインROMがついたPOSEを使用している場合、フルバージョンのエミュレータとROMイメージをダウンロードして下さい。PalmOS.comのPalm Emulatorページで入手可能です。

含まれているファイル:

NSBHostTraceLib.INF NSBHostTraceLibのインフォメーションファイル。\nsbasic\libフォルダに入れる。
NSBHostTraceLib.prc ライブラリ。\nsbasic\libに入れ、さらにPOSEにダウンロードする。
HostTraceLib.prj この共有ライブラリのサンプルNSBasicプロジェクト。
HostTraceLib.zip 以上の全てのファイルを含んだZIPファイル。

あなたのプログラムでHostTrace関数を使う

1. NSBHostTraceLib.PRCとNSBHostTraceLib.INFは\NSBasic\Libに置かれていなければなりません。

2. このライブラリはNSBasicのLoadLibraryステートメントを使ってロードされなければなりません。関数がプログラムのどこでも有効になるように、このステートメントはプログラムのStartup codeで書きます。LoadLibraryは省略名を付けるための2つ目のパラメータを持っています。本稿の例では"HT"をこの名前としてい使っています。例:

プログラムのStartup code:

Sub main() 
	LoadLibrary "NSBHostTraceLib", "HT" 
End Sub

3. 何かトレースを行う度に、Reporterにラインフィードを入れない場合、以下を行います:

Dim MyMessage as String  ' just an example
Dim MyNumber  as Integer ' just an example
MyNumber = 100 * Rand()  ' just an example

Error = HT.NSBHostTraceOutputT("Your Message") ' or
MyMessage = Str(MyNumber)
Error = HT.NSBHostTraceOutputT(MyMessage)

4. 何かトレースを行う度に、Reporterにラインフィードを入れる場合、以下を行います:

Dim MyMessage as String  ' just an example
Dim MyNumber  as Integer ' just an example
MyNumber = 100 * Rand()  ' just an example

Error = HT.NSBHostTraceOutputTL("Your Message") ' or
MyMessage = Str(MyNumber)
Error = HT.NSBHostTraceOutputTL(MyMessage)

5. Startup Codeで行う方が良い場合、以下を行います:

Sub Msg(Message as String)
Error = HT.NSBHostTraceOutputT(Message)
End Sub

Sub MsgL(Message as String)
Error = HT.NSBHostTraceOutputTL(Message)
End Sub

6. Reporterを稼働状態にしなければなりません。あなたの全てのメッセージをトレースします。

いくつかのスクリーンショット