使用DWScript,我没有看到检查FileCreate函数返回值的明显方法。
示例(不起作用)脚本:
示例(不起作用)脚本:
function TestFileCreate : Boolean;
var
F : File;
begin
F := FileCreate('MyTestFile.txt');
Result := (F = -1); // Not working!
Result := (F.Handle = -1); // Not working!
end;
DWScript源代码摘录:
procedure TFileCreateFunc.DoEvalAsVariant(const args : TExprBaseListExec; var result : Variant);
var
h : THandle;
i : IdwsFileHandle;
begin
h:=FileCreate(args.AsFileName[0]);
i:=TdwsFileHandle.Create(h);
Result:=IUnknown(i);
end;
如您所见,内部调用了Delphi的CreateFile函数,当其失败时返回值为-1。这个数值会被转换成IdwsFileHandle。