第12回 広がる世界〜共有ライブラリを使ってみよう「1.まずは使い方など」

12−1 まずは使い方など

 NS Basicにある程度慣れてくると、機能や関数の種類が少ない事に不満を覚えるようになります。いえ、その域まで達しなくても、1つか2つくらいの欲しい機能の実現が難しかったり、そもそも出来なかったりという事が発生します。
例えば、CodeWarriorやCGGなど、いわゆるC系の言語の場合は、SDKと呼ばれるPalmOS本体の機能を網羅した土台の上で開発しますから、PalmOSが出来る事とほぼ同じことが出来ます。つまり、PalmOSに機能が追加されれば、その機能が使えるわけですね。
しかし、NS Basicの場合、SDKのバージョンよりむしろ、ランタイムの機能の左右されますので、唐突にバージョンを上げるわけにはいきません。もし、大幅に機能追加した場合、自分のアプリのバージョンだけでなく、ランタイムのバージョン管理を開発者が細めに対応しなければならなくなってしまうからです。ちょっとそこまでは苦しいですよね。
だからといって、諦めなくても大丈夫。ランタイムとは別に、共有ライブラリ(Shared Library)と呼ばれる仕組みを使えば、比較的簡単にNS Basicの機能追加をする事が可能です。
そこで、今回は、色々な機能が詰まった「NSBSystemLib」という共有ライブラリを使って、その使い方などを紹介したいと思います。

まずは、このライブラリを準備しなければなりません。
必要とあらば、ダウンロードしてくるわけですが、通常は、NS Basicにバンドルされています。
あまり、見た事がないかもしれませんが、まずは、NS Basicフォルダの中に「Lib」というフォルダがあることを確認して下さい。確認できたら、中を見てみましょう。

  

中には、思ったより多くのファイルがありますが、〜.prcというファイルと、〜.INFというファイルの2種類があることに気付きます。
簡単に開けそうな、INFファイルを見てみましょう。

  

う〜んと、なんだかよくわからない情報が詰まっていますが、よく見ると、コマンドのような関数のようなものが見受けられます。詳細については、また別の機会に述べるかもしれませんが、本稿ではこのファイルを「開発時に必要な設定ファイル」と覚えておいてください。
簡単に言うと、このファイルは、そのライブラリにどんな関数があるのかをNS Basicに教える設定ファイルなのです。例えば、ライブラリを組み込んでいないNS Basicでは、見ず知らずの命令語や関数に遭遇するとコンパイル時にエラーになりますね。でも、この設定ファイルが組み込まれていれば、これはライブラリの関数であると認識し、コンパイルエラーを起さないようになります。そういうファイルなのです。

   .INFは見ず知らずのコマンドを定義するファイル

こんな風に覚えておいてください。
では、これはどうやってNS Basicに組み込むかという事ですが、それには、LoadLibraryコマンドを使います。

    LoadLibrary "NSBSystemLib"

これでよいのですが、大抵の場合、参照名を付けて使います。
例えば、

    LoadLibrary "NSBSystemLib","NSL"

このように定義すれば、このライブラリは、プログラム中で「NSL」という参照名で使うことが出来ます。参照名って何って?Label1004とか、Field1005とか、オブジェクト名と同じ扱いだと思ってください。
これを使うと、先ほどの、Version()というNSBSystemLibの関数は、

    version = NSL.Version()

というように参照名.関数の形で使うことが出来ます。
LoadLibraryコマンドを置く場所ですが、通常は、Startup Codeに入れます。これは、コンパイルの順番に関係してくる事なのですが、その命令や機能、例えば、この関数Version()等ですが、これらが使われる前に、予めそのライブラリが組み込まれていなければなりません。そのため、一番最初にコンパイルされるStartup Codeで実行しておくのが妥当、という訳です。
(コンパイルの順番については、ハンドブックの「10.H コンパイルの順序と定義されていないファンクション」を参照して下さい。)

次に、出来たプログラムの実行ですが、これには「〜.prc」というファイルがデバイス上になければいけません。

   .prcは実行時に必要なファイル

したがって、作ったプログラムを配布する時などは、出来るだけ、ライブラリを同梱しておくのが親切ではないでしょうか。 まぁ、ランタイムという余分なファイルがある上に、こんな共有ライブラリまでインストールしなければならない、という事に抵抗を感じる方もみえるようですが、それを差し引いても使ってみたい!というアプリを作るのも開発者の楽しみかもしれません。一応、インストールなしでライブラリなどを導入する方法について、後ほど紹介したいと思います。


目次へ     次へ

第12回 広がる世界〜共有ライブラリを使ってみよう「1.まずは使い方など」