- Код: Выделить всё
- program project1;
 {$mode objfpc}{$H+}
 uses
 {$IFDEF UNIX}
 cthreads,
 {$ENDIF}
 Classes,
 uPSCompiler,
 uPSRuntime,
 uPSC_std,
 uPSC_classes,
 uPSR_std,
 uPSR_classes;
 const
 Script = 'begin TStringList.Create; end.';
 var
 Compiler: TPSPascalCompiler;
 Exec: TPSExec;
 Data: string;
 CI: TPSRuntimeClassImporter;
 function ScriptOnUses(Sender: TPSPascalCompiler; const Name: string): Boolean;
 begin
 if Name = 'SYSTEM' then
 begin
 SIRegister_std(Sender);
 SIRegister_classes(Sender,false);
 Result := True;
 end else
 Result := False;
 end;
 begin
 Compiler:=TPSPascalCompiler.Create;
 Compiler.OnUses:=@ScriptOnUses;
 if not Compiler.Compile(Script) then begin
 Compiler.Free;
 Exit;
 end;
 Compiler.GetOutput(Data);
 Compiler.Free;
 CI:=TPSRuntimeClassImporter.Create;
 RIRegister_Std(CI);
 RIRegister_Classes(CI,false);
 Exec := TPSExec.Create;
 RegisterClassLibraryRuntime(Exec,CI);
 if not Exec.LoadData(Data) then begin
 Exec.Free;
 Exit;
 end;
 Exec.RunScript;
 writeLn(TIFErrorToString(Exec.ExceptionCode,Exec.ExceptionString));
 Exec.Free;
 CI.Free;
 end.
Делал точь-в-точь по примерам. Аналогичная программа, скомпилированная в Delphi 2007 исполняет скрипт без ошибок. Куда стоит копать?



