我尝试在 Inno Setup 代码中使用
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;
与
FileClose
方法不同,FileOpen
并没有过时。
我用谷歌搜索,但没有找到任何结果。我知道 Inno Setup 使用 Pascal Script,而不是 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
解决我的未知标识符问题的想法?
FileOpen
是一个 预处理器 函数。您不能在 Pascal Script 代码中使用它,Pascal Script 代码有 自己的函数库。
LoadStringFromFile
。
为了更干净、更高效的解决方案,导入
CreateFile
WinAPI函数。