尝试在Inno Setup代码中检测锁定的文件时出现“未知标识符'FileOpen'”

时间:2018-10-08 17:03:52

标签: inno-setup pascalscript

我正在尝试在Inno Setup代码中使用FileOpen,但是Inno Setup编译器不断向我抛出以下错误。

  

未知标识符“ FileOpen”

这是示例代码:

function IsFileLocked(pathFile : string) : Boolean;
var
  hFile : integer;
begin
  Result := true;

  hFile := FileOpen(pathFile);
  if (0 <> hFile) then
    begin
      Result := false;

      { Since ISPP 1.2, Inno Setup automatically frees resources, so FileClose() is obsolete. }
      { http://www.jrsoftware.org/ispphelp/index.php?topic=fileclose }
    end;
end;

FileClose方法不同,FileOpen并不是过时的。

FileOpen

我进行了Google搜索,但没有发现任何问题。我知道Inno Setup使用的是Pascal脚本,而不是Pascal,但是FileOpen函数是Inno Setup Preprocessor: Functions的一部分。

注意:今天上午,我升级到了最新版本的编译器(5.6.1a)和最新版本的Inno Script Studio(2.3.0),同样的问题。

我确实看到了Other Information > ISPPBuiltins.iss部分。我尝试添加以下行:

[Code]
#include <ISPPBuiltins.iss>

添加#include语句会产生错误

  

ISPPBuiltins.iss第1行:第1列:“ BEGIN”。

ISPPBuiltins.iss添加到项目中作为解决FileOpen问题的方法是没有意义的,因为在文本编辑器中打开文件表明其中不存在“ FileOpen”。我看不到任何嵌入式文件。看起来编译器在文件中不喜欢“; BEGIN ...”,但是我离题了。这个想法真是太重要了。

关于如何使用FileOpen解决我的未知标识符问题的想法?

1 个答案:

答案 0 :(得分:1)

FileOpenpreprocessor函数。您不能在具有its own function library的Pascal脚本代码中使用它。