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

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

> 以下の条件を満たすもの

> ・呼び出すＤＬＬの引数が必ずポインタ型でなければならない。
> ・引数の個数が５つ以下でなければならない。
> ・DLL関数の戻り値が整数型（４バイト）、或いは、ポインタ型でなければならない。

> →DLLの作り方は、こちらで説明しています。

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

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

> 書式：

> 戻り値 | 書式
> 整数型(DWORD) | 「ＤＬＬファイル名」の、「関数名（引数）」を、「命令名」で、DLL宣言。
> ポインタ型 | 「ＤＬＬファイル名」の、「関数名（引数）」を、「命令名」で、文字型DLL宣言。

> 引数の説明：
> 「ＤＬＬファイル名」・・・インポートするＤＬＬの名前
> 「関数名（引数）」・・・インポートする関数の名前と引数。引数の（）の中には、引数の個数を、？｛補語｝と、数分だけ書く。
> 「命令名」・・・実際にひまわりで使う命令の前。
> 実行の結果
> 特殊変数「それ」に、実行の結果を返します。

> 例：
> Borland C++Builder で作られた dSakura.dll の MMLtoMIDI を呼び出す例。
> （dSakura.dll は、ドレミのテキスト（orMML）を、ＭＩＤＩファイルに変換するDLLで、oto.chu.jpより入手出来る。）
> Ｃ言語で書いた、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」を、演奏。 )。

戻る