このバージョンのヘルプはこれ以降更新されません。最新のヘルプは https://www.jmp.com/support/help/ja/15.2   からご覧いただけます。


dll_obj = Load DLL("path" <, AutoDeclare(Boolean | Quiet | Verbose) |Quiet | Verbose > )
Load DLL()は、パス(path)で指定されたDLLをロードします。ログウィンドウにメッセージが表示されないようにするには、AutoDeclare(Quiet)引数を使用します。
DLLで定義される関数の引数や戻り値のタイプを宣言するには、Declare Functionメッセージを使用します。
関数を宣言すると、呼び出せるようになります。
dll_obj <<Declare Function("name", Convention(named_argument), Alias("string"), Arg(type, "string"), Returns(type), other_named_arguments)
Aliasは、JSLで使用できる代替の名前を定義します。たとえば、DLL内の"Message Box"という関数に対して、Alias("MsgBox")を宣言した場合、その関数を次のようにも呼び出せるようになります。
result = dll_obj <<MsgBox(...)
Conventionの引数には、次のいずれかを指定します。
STDCALLまたはPASCAL
ArgReturnsのtype引数には次のいずれかを指定します。
Declare Functionメッセージの引数については、『スクリプト構文リファレンス』の「JSLメッセージ」章を参照してください。
最後に、UnLoadDLLメッセージでDLLをアンロードします。
dll_obj << UnLoadDLL
If( Host is( "Windows" ),
	If(
		Host is( "Bits64" ),
		// 64ビットDLLをロードする。
			dll_obj = Load DLL( "c:\Windows\System32\user32.dll" ),
		// 32ビットDLLをロードする。
			dll_obj = Load DLL( "c:\Windows\SysWOW64\user32.dll" ),
		// どちらのDLLも見つからない場合は実行を停止する
			Throw
		);
	dll_obj <<DeclareFunction(
		"MessageBoxW",
		Convention( STDCALL ),
		Alias( "MsgBox" ),
		Arg( IntPtr, "hWnd" ),
		Arg( UnicodeString, "message" ),
		Arg( UnicodeString, "caption" ),
		Arg( UInt32, "uType" ),
		Returns( Int32 )
	);
	result = dll_obj << MsgBox(
		0,
		"JMPからのメッセージです。",
		"DLLの呼び出し",
		321
	);
	Show( result );
);
dll_obj << UnLoadDLL
dll_obj << Show Functions;
独自のDLLを作成するときには、DLL内にJSLの関数宣言スクリプトを用意しておくことができます。Get Declaration JSLメッセージは、DLL内の関数宣言スクリプトをログに送ります。
dll_obj << Get Declaration JSL;