当前位置: 首页 > 知识库问答 >
问题:

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

况弘新
2023-03-14

我试图在Inno Setup代码中使用< code>FileOpen,但是Inno Setup编译器一直向我抛出以下错误。

未知标识符“文件打开”

这是一个示例代码

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;

FileClo方法不同,FileOpen并不过时。

文件打开

我在谷歌上搜索了一下,但一无所获。我知道Inno Setup使用Pascal Script,而不是Pascal,但FileOpen函数是Inno Setup预处理器:函数的一部分。

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

我确实看到了其他信息部分

[Code]
#include <ISPPBuiltins.iss>

添加#include语句,生成错误

ISPPBuiltins.iss 第 1 行:第 1 列:“开始”预期。

添加ISPPBuillins。iss作为解决FileOpen问题的方法添加到项目中是没有意义的,因为在文本编辑器中打开文件会显示其中不存在“FileOpen”。我没有看到任何嵌入文件。编译器似乎不喜欢文件中的“BEGIN…”,但我跑题了。这么多的想法。

关于如何解决我的未知标识符问题的想法 文件打开


共有1个答案

墨阳羽
2023-03-14
匿名用户

FileOpen是一个预处理器函数。您不能在Pascal Script代码中使用它,它有自己的函数库。

>

  • 对于快速和肮脏的解决方案,请使用LoadStringFromFile

    为了更简洁高效的解决方案,导入< code>CreateFile WinAPI函数。

  •  类似资料:
    • 我有一个运行最新Raspbian的Raspberry Pi 3,我已经从5.23升级了bluez。至5.43。我正在尝试连接到以2秒间隔播发的BLE设备。我基于gatttool编写了一些代码,并尝试连接到这些设备。2秒后,我遇到LE connect请求被取消。因此,我得到一个状态为0x02(未知连接标识符)的LE连接完成消息 根据我的研究,我在大约15个月前的档案中发现了这个, https://w

    • Selenium代码没有识别IE10上的webelements。即使在为驱动程序设置了路径之后。

    • 问题内容: 我想锁定android sdcard上的文件。我需要锁定它们,因此除我的软件外,没有人可以删除复制移动或​​通过蓝牙或任何其他方式发送它们。我该怎么做? 问题答案: 我认为您想加密文件。尽管该文件仍然可以移动,但对您的应用程序而言,它将毫无用处。人们将能够复制,移动,删除,但内容不会受到损害。

    • 问题内容: 我有一个脚本,将多个文件合并为一个脚本,当其中一个文件具有UTF8编码时,它就会中断。我认为读取文件时应该使用该函数,但是我不知道如何分辨需要解码的内容。 我的代码基本上是: 当前,在UTF8文件的开头,它将在输出中添加以下字符: 问题答案: 尝试使用该功能。此函数将检查您的字符串并尝试“猜测”其编码是什么。然后,您可以根据需要进行转换。正如brulak建议的那样,最好保留转换 为 U

    • 我现在收到的每一条消息都会出现以下错误: 1437425804:未注册标识符为“未找到默认值”的图标 仅当后端用户登录时,才会发生此错误。对于刚刚访问网站(没有后端用户登录会话)的用户来说,网站工作正常。 我不知道有一个带有标识符的图标,也不知道从哪里开始调试。扩展扫描仪看起来不错。有人给我一个提示吗? 编辑 这是错误的回溯: Fri,19 Mar2021 12:28:52 0100[关键]请求=

    • 问题内容: 有没有一种方法可以检测MySQL中的锁定表?我的意思是表被命令锁定。 (请注意,有兴趣检测使用来获取的 命名 锁的读者应改为从get_lock显示显示所有当前锁。) 问题答案: 显示每个表的状态及其锁定。 对于命名锁,请查看显示来自get_lock的所有当前锁