03/12/02 21:45
CodeWarrior Pascalで実行できたソースコードの例
プラグイン側の関数は2数の和を返す関数。
type
fPtr = function (a,b:integer):integer; {←ここがTHINKでNG。型は必要に応じて変える}
fHdl = ^fPtr;
var
plugHdl: fHdl;
plugin: fPtr;
c: integer;
procedure loadPlugin; {とりあえずファイル名、リソースタイプ、IDは決め打ち}
var
iFileRef, iErr: integer;
begin
iFileRef := OpenResFile('pl1'); {プラグインファイルを開く}
plugHdl := fHdl(Get1Resource('MyPL', 128)); {メモリ上に読み込み}
iErr := FSClose(iFileRef);
end;
begin
loadPlugin; {プラグインをファイルから読み込む}
hlock(handle(plugHdl)); {ハンドルロック}
plugin := plugHdl^; {一旦ポインタに移し替えないとダメっぽい}
c := plugin(3,6); {関数呼び出し。プラグインは2数の和を返す関数}