Windows環境や、購入したパッケージには、たくさんの利用可能なDLLがあります。独自に作成したものを使用する場合も考えられます。各々のDLLの呼び出し方は異なっていますが、呼び出し先に合わせてパラメータを設定する必要があります。ここでは、Windows APIを呼び出してメッセージボックスを表示させる簡単な例を元に説明します。
Magic xpaでは、 CallDll() 関数や[コールUDP]処理コマンドを使用して、DLLを呼び出すことができます。ここでは両方の呼び出し方で説明しています。
CallDLL()関数を使用する
CallDll()関数には3種類あり、呼び出すDLLに応じて使い分けます。Windows APIを呼び出す場合は、stdcall規約で呼び出すためCallDLLS()関数を使用します。
コール処理を定義したい行で F4 を押下します。
「U」を押下して[項目更新]処理コマンドを作成するか、プルダウンリストから処理コマンドを選択します。
戻り値を格納するデータ項目を選択します。この場合、呼び出すDLLは数値を返すため、戻り値には数値型項目を使用します。数値は、ユーザからの応答を表します。
[値]カラムで ズーム して、起動するDLLを定義します。ここでは、 CallDLLS() 関数を使用して呼び出します。 構文は以下の通りです。
CallDLLS( DLLName , ArgString , Arg1 , Arg2 ... ) |
パラメータ:
|
|
CallDLLS() 関数を定義し実行すると、Windowsのメッセージボックスが表示されます。ユーザがボタンを クリック すると、 クリックされたボタンに応じた戻り値(6=はい、7=いいえ、2=キャンセル)が返ります。
ヒント: |
このように、OSに依存する関数を使用する場合、Magic xpaのタスク内でカプセル化することを推奨します。このようにすると、別の方法で呼び出したりインストール内容が変わったりした場合に変更が簡単になります。 |
コールUDP処理コマンドを使用する
[コールUDP]処理コマンドを使用してDLLを呼ぶ場合も、 CallDLL() 関数を使用した場合と同じように利用できます。
コール処理を定義したい行で F4 を押下します。
「I」を押下して[外部コール]処理コマンドを作成し、次のカラムに移動します。
「U」を押下して「UDP」を選択します。 次のカラムに移動します。
ズーム して[式]エディタ を開き、起動するDLLの名前を入力します。DLL名の前に @ を指定します。この例では、Windowsの'user32.MessageBoxA'を呼び出すため以下のようになります。
@user32.MessageBoxA |
Enter を押下して[ロジック]エディタ に戻り、次のカラムに移動します。
ズーム して[パラメータ]テーブルを開きます。ここでは CallDLL() 関数の場合と同じ書式で設定します。最後の行には、戻り値を返す変数項目を定義します。
最初のパラメータには、DLLが必要な各パラメータのデータタイプを示す文字を指定します。MessageBoxA関数の場合は、5つの文字を指定します。4 はlong integer、 A はNullで終わる文字列を表します。最後の文字(4)は、戻り値を表しています。
その他のパラメータに対しては必要に応じて項目や[式]特性から ズーム して設定します。最後の1文字(4)は、戻り値を表しています。
Ctrl+Enterを押下して[外部コール]処理コマンドの[特性]シートを開きます。[規約]特性に「STDCALL」と入力します。
関連プログラム:
オンライン/リッチクライアントサンプル(プログラム EL09/REL09)