Pascal Scriptコードで関数の変数variable(string)を変更して、スクリプトが終了した後にDelphi関数で取得する必要があります。パスカルスクリプト、私のDelphiコードにスクリプトからvarパラメータを返す方法?
私のスクリプトコード:
function OnBroadcastMessage(iCID, iUIN: integer; var sUsersList: string; dtActualTo: double; bMustRead, bReadNotify: boolean; sMsg: string): boolean;
begin
sUsersList := '3';
result := true;
end;
begin
end.
(いずれかのチェックなしで唯一の小さな例、)私のDelphi XE3コード:
var
Compiler: TPSPascalCompiler;
Exec: TPSExec;
ProcNo: cardinal;
ParamList: TIfList;
Data: AnsiString;
begin
Compiler := TPSPascalCompiler.Create;
Compiler.Compile(Script)
Compiler.GetOutput(Data);
Compiler.Free;
Exec.LoadData(Data);
ProcNo := Exec.GetProc('OnBroadcastMessage');
ParamList := TIfList.Create;
ParamList.Add(@iCID);
ParamList.Add(@iUIN);
ParamList.Add(@sUsersList);
ParamList.Add(@dtActualTo);
ParamList.Add(@bMustRead);
ParamList.Add(@bReadNotify);
ParamList.Add(@sMsg);
result := Exec.RunProc(ParamList, ProcNo);
FreePIFVariantList(ParamList);
end;
このソリューションは間違っていた、私は "行でエラーが発生しましたよ結果:= Exec.RunProc(ParamList、ProcNo); "
"プロジェクトmcserv.exeは例外クラス$ C0000005を発生させ、 'アクセス違反は0x00a56823:0x0000000d'になりました。"
どうしたのですか?
*エラーが発生しました*あなたは何を得るのエラーを教えない限り、全く役に立ちません。 **正確なエラーメッセージは何ですか? –
申し訳ありません。ケン。エラーテキスト: "プロジェクトmcserv.exeは例外クラス$ C0000005を発生させました。 '0x00a56823でアクセス違反が発生しました:アドレス0x0000000d'が読み込まれました。" – HobitZlobny
私はPascalスクリプトを使ったことがありませんが、私はExecが初期化されていないことがわかります。 Execを試してください:= tPSExec.Create; –