gpt4 book ai didi

installation - 使用 Inno Setup StringChangeEx 函数时出现 "Variable expected"错误

转载 作者:行者123 更新时间:2023-12-04 08:35:27 27 4
gpt4 key购买 nike

我正在使用 Inno Download Plugin 为我的安装下载一堆文件。这些文件在“files.json”中列出。

FileList := TStringList.Create;
FileList.LoadFromFile(ExpandConstant('{tmp}\files.json'));

for i := 0 to FileList.Count-1 do
begin
fileName := ExtractFileName(FileList[i]);

StringChangeEx(FileList[i], '\', '/',True);

//Add each file to download queque
idpAddFile("www.myapiaddress.com/files/" + FileList[i], ExpandConstant('{tmp}\install\') + fileName );
Log(FileList[i]);
end;
让我头疼的是这条线 StringChangeEx(FileList[i], '\', '/',True) .一旦我把它放进去,idp.iss 就停止编译,给我错误: Variable expected
procedure idpAddFile(url, filename: String);                     external 'idpAddFile@files:idp.dll cdecl';
安装程序编译正常,如果我删除 StringChangeEx完全来自我的脚本。把它放在不同的位置并没有帮助......
任何想法,什么可能导致这个问题?
Error message

最佳答案

StringChangeEx function需要一个 string第一个参数中的变量(它被声明为 var )。你给它一个 string仅值。
你的代码可以工作,是 FileList string大批。但它不是,它是一个类具有类似数组的string默认属性。使用属性值等同于使用函数/方法返回值。属性(property)只是syntactic sugar用于 getter 和 setter 方法。
您必须将该值复制到 string变量和返回。

S := FileList[i];
StringChangeEx(S, '\', '/',True);
FileList[i] := S;
尽管您实际上不需要将其复制回您的情况。

关于错误的原因是指 idp.iss文件:Inno Setup 中似乎有一个错误,它使它报告错误,就像它发生在 Pascal 脚本代码的第一行一样(在您的情况下是包含的第一个真实代码 idp.iss) .我已经发布了 bug report .它是 fixed already .

关于installation - 使用 Inno Setup StringChangeEx 函数时出现 "Variable expected"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64821448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com