CallDll ( DllFileName , FunctionName , Param1 , Param2 , … )
BOOL WINAPI MyFunc( HWND hParent, int argc, char * argv[], int * rtnc, char * * rtnv[] );
HWND hParent; ' 親ウィンドウのハンドル
int argc; ' スクリプトから渡されるパラメタの数
char * argv[]; ' スクリプトから渡されるパラメタの配列
int * rtnc; ' スクリプトに返す文字列の数を格納するポインタ
char * * rtnv[]; ' スクリプトに返す文字列の配列を格納するポインタ
' TEST.DLLの関数部分(Favorite.c)
#include "windows.h"
#define FAV_SPORT1 "SKI"
#define FAV_SPORT2 "BASKETBALL"
#define FAV_FOOD1 "STEAK"
#define FAV_FOOD2 "PASTA"
char * g_ret[2];
BOOL WINAPI GetFavorite( HWND hParent, int argc, char * argv[], int * rtnc, char ** rtnv[] )
{
if (lstrcmp(argv[0], "SPORT") == 0)
{
g_ret[0] = FAV_SPORT1;
g_ret[1] = FAV_SPORT2;
}
else if (lstrcmp(argv[0], "FOOD") == 0)
{
g_ret[0] = FAV_FOOD1 ;
g_ret[1] = FAV_FOOD2;
}
*rtnc = 2;
*rtnv = g_ret;
return ( TRUE );
}
' スクリプト側の処理(abc.SPT)
Dim Quest
Quest = "SPORT"
CallDll(_BIN_+"TEST.DLL" ,"GetFavorite" ,Quest)
Dim Msg
Msg = "私の好きな"+Quest+"は"+_RTN00_+"と"+_RTN01_+"です"
MessageBox(Msg ,OK,,Information)
Exit(0)