代码之家  ›  专栏  ›  技术社区  ›  Sarah Weinberger

“未知标识符'FileOpen'”尝试检测Inno安装程序代码中的锁定文件时

  •  2
  • Sarah Weinberger  · 技术社区  · 6 年前

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

    未知标识符“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

    我在谷歌上搜索了一下,但什么也没找到。我知道Inno安装程序使用的是Pascal脚本,不是Pascal,而是 文件打开 函数是 Inno Setup Preprocessor: Functions .

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

    我确实看到那部分了 Other Information > ISPPBuiltins.iss . 我试着加上一行:

    [Code]
    #include <ISPPBuiltins.iss>
    

    添加 #include 语句,生成错误

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

    ISPPBuiltins.iss 作为解决问题的一种方法 文件打开

    关于如何解决我的未知标识符问题的思考 ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Martin Prikryl    5 年前

    FileOpen 是一个 preprocessor 功能。您不能在Pascal脚本代码中使用它,因为它具有 its own function library .