(76) Small Basic による Small Basic の機能拡張?

(71) FC SmallBasic Complements のエントリ上げた時に、FremyCompany さんの SkyDrive に SmallBasicExtensionCompiler.zip ってのがあるのを見つけておりまして。

なんだろうこれ、名前からして Small Basic の拡張機能を作れるコンパイラみたいな感じなんだけどなーなどとずいぶん気になっていたんでしたが。

今日、ご本人による紹介スレッド Create extension for Small Basic in Small Basic を見つけることができました。 なんでも、

Small Basic でSmall Basic の拡張機能を作るコンパイラ

なんだそうで。

上記スレッドは「v0.6 でしか動かんですぜ」という Fremy さんに対して「v0.7 用コンパイラまだー?」のポストで終わっていますが、実際にバイナリが提供されている SmallBasicExtensionCompiler.zip – Windows Live では、「v0.8 対応」と4/12 付でコメントされています。

Small Basic 製拡張機能だってことは、当然 Small Basic にできることしかできないわけですので、たぶん汎用ルーチンのカプセル化とかそんな感じで使うんではないかと思うんですが。
実際のところ、どんなもんなんでしょう。


つことで、試してみることにしました。

まずは SmallBasicExtensionCompiler.zip – Windows Live から「ダウンロード」または zip アイコンをクリックして SmallBasicExtensionCompiler.zip を取得。
取得した zip ファイルの中身を、適当なフォルダに展開します。SmallBasicLibrary.dll 等を含む実行系のファイルが 5 本。説明書きっぽいデータがありません。

しかたがないので、上記スレッドどおりに作業してみます。

まず、サンプルどおりに

MyField = "(No value)"
_MyPrivateField = "Value of MyField : "

Sub TestSub
  TextWindow.Write(_MyPrivateField)
  TextWindow.WriteLine(MyField)
EndSub

を Small Basic IDE のテキストエディタに貼り付け、「Test.sb」という名前で保存します。
当然ですがこのソースを単体で実行しても何も起きません。

次に SmallBasicExtensionCompiler.exe を起動します。

image

でもって「Small Basic File :」と説明されているテキストボックスに、先ほど保存した .sb ファイルをフルパスで指定します。

image

後は、右下緑色の「Create extension ! 」ボタンをクリックするだけ。
つか、押した途端にプログラムが終了します。

コンパイルは通ったのかと確認してみると、SmallBasicExtensionCompiler.exe と同じフォルダに Test.dll と Test.pdb ができあがっていました。

ここにあっても使えないので、この 2 つのファイルを Small Basic のインストールフォルダ ( デフォルトインストールでは C:\Program Files\Microsoft\Small Basic ) の下の lib フォルダにコピーします。
でもって、Small Basic IDE を再度起動します。

で、サンプル下段のソース

Test.Testsub()
Test.Myfield = 5
Test.Testsub()

を Small Basic IDE のテキストエディタに貼り付けておもむろに実行してみます。

…だめだ、動かない。何をどうがんばってみても動かない。
そもそも SmallBasicExtensionCompiler.zip に同梱されている SmallBasicLibrary.dll がv0.6 用のランタイムではないですかい。


つことで、今回は失敗に終わってしまいました。がっかり。

そういえば、FC SmallBasic Complements も「ソースあるよー」と言われて喜んでダウンロードしに行ったら削除されてましたーということもありました。

どういう経緯なのかよくわかりませんけれども、とりあえず今後に期待、というところでしょうか。

コメントを投稿