>DLLがわかんないんです。
DLL = ダイナミック・リンク・ライブラリー, は EXE ファイルとリンクさせて使う関数とデータを含んだモジュールの集合体です。
DLLは、DLLの中身がどうなっているか知らなくても使用できる便利(?)なファイルです。
↓に使用例を書いときます。
#uselib "test1.dll"
#cfunc str_len "_str_len@4" sptr
; HSP の strlen より速くしたい場合は ↑の sptr を var に変えてください。
; ただし、変数しか使えません。
mes "文字列は " + str_len("abcdefg") + " 字です"
↑を実行するには↓にある test1.dll をダウンロードし、
http://briefcase.yahoo.co.jp/bc/asmhack1988/lst?&.dir=/976a&.src=bc&.view=l
DLL を HSP 本体と同じディレクトリに入れてください。
ダイナミック・リンク・ライブラリーの他に、スタティック・リンク・ライブラリー, と言うものもがあります。
これは プロセス(EXE) が起動された時、そのプロセスが使用するメモリ空間に直接ライブラリーの内容をコピーします。
つまり、プロセスを起動するたびにそこにライブラリー内容をコピーするのでメモリをたくさん使います。
一方ダイナミックな方は、あるメモリ空間にライブラリーの内容をロードし、それを共有し合うのでメモリを節約できます。
DLL はいくつかのアプリケーションで共有されますが、DLL が使用する変数や定数は、DLL を起動したプロセス空間に作成されるので通常共有されることはありません。
だから、他のプロセスが自分の変数内容を書き換えてしまうことは普通はありません。
↓でいろいろ試してみてください。
#uselib "test2.dll"
#func set "_set@4" int
#cfunc load "_load@0"
// DLL 内で使用している変数(メモリ空間)に代入
set 12345
// メモリ内容をロード
mes "このプロセス内に保存されている値は " + load() + " です"
↑を実行するには↓にある test2.dll をダウンロードし、
http://briefcase.yahoo.co.jp/bc/asmhack1988/lst?&.dir=/976a&.src=bc&.view=l
DLL を HSP 本体と同じディレクトリに入れてください。
以上