« 【講座】HSPたまひよ塾 - 第9回「画像を表示してみよう」 | メイン | 【講座】HSPよく使うフレーズ 第5回 ゲームっぽいキー入力2 »

2006年04月08日

【講座】「教えて!おにたま!!」

<聡さんからのおたより>

今HSPでプログラミングをしているのですが、本に、
「#pack命令を使えばファイルを1つにまとめられる」と書いてあったの
で、DLLと、LZHファイルをパックしたのですが、2つとも呼び出すことが
できません。
そして、そのファイルをプログラムと同じフォルダに置くとうまく実行し
ます。

<こたえ>

「教えて!おにたま!!」へのお便りありがとうございます(^^

#pack命令は、実行ファイルの中に指定したファイルを埋め込んで使用す
るためのものですが、いくつか制約事項があります。

結論から言ってしまうと、残念ながらDLLやLZHファイルは埋め込んで使用
することができません。#pack命令で指定できるファイルと指定できない
ファイルの違いは何なのか、少しだけ説明してみたいと思います。

HSPで作成された実行ファイルの中身は、HSPのスクリプトからbload命令
やpicload命令などにより見ることができます。これらの機能は、HSPその
もののシステム(ランタイム)によって実現されています。

その一方、dllやexeといったファイルはWindowsのシステムそのものが持
つシステムによって操作され、HSPのシステム自身では扱うことができま
せん。

Windowsのシステムが読み込むことのできるファイルは、エクスプロー
ラー等で表示される通常のファイルだけで、HSPの実行ファイルに埋まっ
ているものは認識してくれません。テキストエディタに音声ファイルを読
み込ませるようなもので、フォーマットが一致せず開けないわけです。

このような制約から、システム側で扱っているファイルは#packで指定す
ることができません。具体的には、dllやexe、scrといったコードが含ま
れるファイル、midやmp3などMCIで演奏される音楽ファイル、さらに外部
のツールで開かれるファイル全般ということになります。

それでは、またまた。
HSPに限らず、PCのコトやプログラミング関係どんなことでもお便り
待っていますよ。

(おにたま)

投稿者 usuaji : 2006年04月08日 14:24

口臭チェッカー市場