作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 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。
最佳答案
它们的目的是在失败时引发异常。此问题现已修复!
经过扩展,现在只有在使用无效文件的情况下才会触发异常,但两个函数除外:FileIsValid 和 FileClose。还添加了帮助程序,以便可以像方法一样使用文件函数(即“FileIsValid(f)”也可以写为“f.IsValid”)
关于delphi - 如何检查DWScript FileCreate函数的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35156678/
我使用 winapi crate 来获取文件的句柄。但是当我尝试使用绝对文件路径时,我遇到了编码或类似问题。所以 Windows 总是返回错误 3(找不到路径)。 当我试图调试这个问题时,我使用了 G
我是一名优秀的程序员,十分优秀!