#cfunc

外部DLL呼び出し関数登録

#cfunc 新規名称 "関数名" タイプ名1,…

解説

外部DLLを呼び出すための新しい関数を登録します。
先に#uselib命令により外部DLL名を指定しておく必要があります。
新規名称、関数名、タイプをスペースで区切って書きます。
新規名称の直前に「global」を入れることで、 すべてのモジュールで永続的に利用することのできる命令を作成することができます。

関数名は、"関数名"のようにダブルクォートで囲むことで、 DLLの完全なエクスポート名を記述することができます。
ダブルクォートで囲んでいない場合は、「_関数名@16」というVC++のエクスポート規約に基づいた名前に変換されます。

タイプ名には、引数の詳細を記述します。
引数パラメーターは、#func命令と同じものを使用することができます。
詳しくは、#funcのリファレンスを参照してください。
#cfunc命令によって登録された新規名称は、関数として式の中に記述することが可能です。

例 :
	#uselib "test.dll"
	#cfunc test "_func@16" var,int,int,int
	res=test(a,1,2,3)  ; test.dllのfunc(&a,1,2,3)が呼び出される

登録された関数の戻り値として外部呼出しの結果取得された整数値(32bit int)をそのまま返します。
HSP2.5互換の呼び出しでは、システム変数statに返される値を関数の戻り値とします。

関連項目

#uselib外部DLLの指定
#func外部DLL呼び出し命令登録

サンプル逆引き (4)

clbk_gwlwndpproc.hsp
multitouch1.hsp
multitouch2.hsp
multitouch3.hsp

情報

バージョン3.5
作成日2017/09/13
著作者onitama
URLhttp://hsp.tv/
備考ver3.5標準命令
タイプ内蔵命令
グループプリプロセッサ命令
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
  • HSPLet
移植のヒントHSPLet時は、関数と同名のメソッドが呼ばれることになります。(詳細は、HSPLetマニュアルを参照してください。)
hs ファイルhsphelp\i_prep.hs