外部DLLのリンク/プラグイン(DLL)の使い方


■『DLL宣言』『文字型DLL宣言』で呼び出すことが出来るDLL

以下の条件を満たすもの
呼び出すDLLの引数が必ずポインタ型でなければならない。
引数の個数が5つ以下でなければならない。
DLL関数の戻り値が整数型(4バイト)、或いは、ポインタ型でなければならない。
→DLLの作り方は、こちらで説明しています。

※『DLL宣言』及び『文字型DLL宣言』は、ver.1.33以前のバージョンのひまわりで利用されていたものです。上記の宣言以外の型を呼びたい場合は、こちらの、『DLLを利用』命令を使ってください。


■インポートする命令「DLL宣言」

書式:
戻り値 書式
整数型(DWORD) 「DLLファイル名」の、「関数名(引数)」を、「命令名」で、DLL宣言。
ポインタ型 「DLLファイル名」の、「関数名(引数)」を、「命令名」で、文字型DLL宣言。
引数の説明:
「DLLファイル名」・・・インポートするDLLの名前
「関数名(引数)」・・・インポートする関数の名前と引数。引数の()の中には、引数の個数を、?{補語}と、数分だけ書く。
「命令名」・・・実際にひまわりで使う命令の前。

実行の結果
特殊変数「それ」に、実行の結果を返します。
例:
Borland C++Builder で作られた dSakura.dll の MMLtoMIDI を呼び出す例。
(dSakura.dll は、ドレミのテキスト(orMML)を、MIDIファイルに変換するDLLで、oto.chu.jpより入手出来る。)

C言語で書いた、MMLtoMIDIは、以下のような関数である。これを、ひまわりから使う。

C言語の関数:
DWORD MakeMidi(char *MML, char *outFileName)
DWORD GetLastMessage(char *msg, char *len)

{命令の宣言}
「dSakura.dll」の、「MakeMidi(?を,?へ)」を、「MIDI作成」で、DLL宣言。
「dSakura.dll」の、「GetLastMessage(?へ,?バイトで)」を、「MIDI作成エラー取得」で、DLL宣言。

{実際に呼び出す}
「ドレミソラソミレ」を、「test.mid」へ、MIDI作成。
もし、それが、いいえならば、('作成に失敗
  エラー文字列に、1024バイトを、確保。
  エラー文字列へ、1024バイトで、MIDI作成エラー取得。
  エラー文字列と、言う。
)違えば(
  「test.mid」を、演奏。
)。

□解説

ひまわりのプログラムの先頭で、サクラDLLを使えるように、以下のように宣言します。
{命令の宣言}
「dSakura.dll」の、「MakeMidi(?を,?へ)」を、「MIDI作成」で、DLL宣言。
「dSakura.dll」の、「GetLastMessage(?へ,?バイトで)」を、「MIDI作成エラー取得」で、DLL宣言。

実際の使用例です。
一行目で、「ドレミ」のようなMMLテキストから、MIDIファイルを作ります。
二行目以降では、もし、作成が失敗したら、エラーメッセージを取得し、表示し、成功すれば、MIDIファイルを演奏するという手順です。
{実際に呼び出す}
「ドレミ」を、「test.mid」へ、MIDI作成。
もし、それが、いいえならば、('作成に失敗
  エラー文字列に、1024バイトを、確保。
  エラー文字列へ、1024バイトで、MIDI作成エラー取得。
  エラー文字列と、言う。
)違えば(
  「test.mid」を、演奏。
)。

戻る