Tech Note 05f: NSBasic用のPalmOS Pascal Compiler共有ライブラリ サンプルNovember 26, 2003© NSB Corporation. All rights reserved. |
[英語版] Adrian Nicolaiev氏による寄稿。 このテクニカルノートはPalmOS Pascal (PP) Compilerを使って、他の共有ライブラリを作成するテンプレートの意味を持っています。このプロジェクトは、役に立つことは大してしていませんが、スタートポイントとしては十分でしょう。PP Compiler を使用すると、とても簡単にNSBasicようの共有ライブラリが作れることが分かるでしょう。 まず、必要なファイルをダウンロードします:
最初に述べたように、これは共有ライブラリ用のテンプレートですので、これを使って自分のファンクションを挿入するのは非常に簡単です。 この共有ライブラリのサンプルにある2つのファンクションは、足し算と掛け算を行います。このサンプルは、単純で理解し易いように作ってあります。 重要:"THIS"から始まるものは、このライブラリに所属していることを意味しています。このサンプルはNSBasicプログラムだけで使うためのものだし、NSBasicは.infファイルにある情報を使っていますので、あなたのライブラリでは"THIS"は省いても問題ありません。 今回の目的を重視するため、SSFファイル(PalmOS Simulatorを開くことができる)を使って特別なPP Compiler環境を作りました。 最終バージョンはNSBasic 4.0と一緒にインストールされるはずです。Simulator 5.3をお持ちでない場合、ここからダウンロードできます。 起動すると、Piaf、PP Shell、PPNSBLibtTestの3つのアイコンが"Unfiled"カテゴリーに見えるはずです。 これらのスクリーンショットに従うと、共有ライブラリをコンパイルすることができます。Pascalの知識を使うと、変更することも、さらに全く新しい共有ライブラリを作ることができます。その時は、みんなに報告しましょう。 あなたのPalmデバイスを使って、ご自身のPP環境を作りたい場合、このリンクを参考にして下さい。また、Windows IDEで共有ライブラリを編集したい場合は、Fozzyが使えるかもしれません。 もし知りたいのであれば、いくつかの気になる事項があります。 ここまであれば、スタートするには十分でしょう。 |
PPNSBasicLib PAS File - PalmOS Pascal Compiler Library source code |
function
This_LibAdd(refnum:UInt16;a,b:integer;result:resultP):Err; begin result^:=a+b; This_LibAdd:=0; end; function This_LibMul(refnum:UInt16;a,b:integer;result:resultP):Err; begin result^:=a*b; This_LibMul:=0; end; |
PPNSBasicLib INF File - NSBasic INF source code |
[General] ExtensionName=PPNSB PrcName=PPNSBasicLib.prc Version=1.0 Manufacturer=Adrian Nicolaiev - http://www.niconnect.com InfVers=2.0 [GlobalMethods] PPNSB_ADD=1, func, 2, "PPNSB_ADD(in a as integer, in b as integer) as integer" PPNSB_MUL=2, func, 2, "PPNSB_MUL(in a as integer, in b as integer) as integer" |
PPNSBLibTest PRJ File - NSBasic Project source code |
Startup() LoadLibrary PPNSBasicLib.inf Object() result = PPNSBasicLib.PPNSB_ADD(aa,bb) MsgBox Str(result) result = PPNSBasicLib.PPNSB_MUL(aa,bb) MsgBox Str(result) |
Screenshot 01 Piafを起動した後、"O"をクリックしPNSBasicLib.pasを選ぶ。OKをクリックする。 |
Screenshot 02 このソースコードが見える。 |
|
|
|
|
|
|
|
|
Curiosity 1 Q.: PPNSBasicLibはどのように内部へ? A.: "libr"リソースを持っています。 |
|
|
|
FozzyはPP Compiler用の無料のIDEです。ここから最新版をダウンロードできます。 |
さあ、あなたのオリジナルのライブラリを作ってみましょう。
Good luck !
Adrian Nicolaiev
http://www.niconnect.com