Inno setup Inno设置逗号错误
我在[Code]中有一个GetVersion函数,它返回一个字符串,如“1004”、“1003”等 我创建此函数是为了检查注册表值中的最低版本号并将其卸载 下面是一段代码,它给出了stroint转换行的错误点Inno setup Inno设置逗号错误,inno-setup,pascal,Inno Setup,Pascal,我在[Code]中有一个GetVersion函数,它返回一个字符串,如“1004”、“1003”等 我创建此函数是为了检查注册表值中的最低版本号并将其卸载 下面是一段代码,它给出了stroint转换行的错误点 Comma (,) expected 以下是片段: function DoesOldVersionsExist(): Boolean; var AppVersion: integer; mstr: string; VersionInstalled: cardinal; beg
Comma (,) expected
以下是片段:
function DoesOldVersionsExist(): Boolean;
var
AppVersion: integer;
mstr: string;
VersionInstalled: cardinal;
begin
AppVersion := StrToInt(GetVersion({#MyAppVersion}), 0);
...
在这一行之后,我将比较这些值并返回true或false。非常感谢
错误消息是这样说的:
Line 55
Column 40.
Comma (,) expected
谢谢Deanna,但不幸的是,这是指向以下内容的错误消息:
AppVersion := StrToInt(GetVersion({#MyAppVersion}), 0);
^
下面是GetVersion函数:
function GetVersion(AppVersion: String): String;
var
Version: String;
CharIndex: integer;
c: char;
begin
for CharIndex := 1 to Length(AppVersion) do begin
c := AppVersion[CharIndex];
if (c <> '.') then
Version := Version + c;
end;
Result := Version;
end;
函数GetVersion(AppVersion:String):String;
变量
版本:字符串;
CharIndex:整数;
c:半焦;
开始
对于CharIndex:=1到长度(AppVersion)do begin
c:=AppVersion[CharIndex];
如果(c'),则
版本:=版本+c;
终止
结果:=版本;
终止
我认为您不能在这样的代码中只使用Inno设置常量,您必须使用:
你没有提供足够的信息给我们一个明确的答复,但我认为情况如下 您已经定义了一个名为
MyAppVersion
的常量,可以由ISPP(Inno Setup前置处理器)替代。现在,您还没有告诉我们这个变量是什么类型,也没有告诉我们GetVersion
的签名是什么(特别是它期望的参数是什么类型?)。但是,如果这些类型是字符串,则需要编写
StrToInt(GetVersion('{#MyAppVersion}'), 0);
为了获得,比方说,
StrToInt(GetVersion('Some string, this is!'), 0);
而不是
StrToInt(GetVersion(Some string, this is!), 0);
格式不正确(事实上,看到它会伤到我的眼睛)。看起来你的右括号太多了。当你收到错误消息时,也可以尝试发布它,因为它通常会提示问题的原因。很好,我更改了它,但运气不好。我将编辑我的问题,谢谢。与您的一样,您还没有告诉我们MyAppVErsion定义是什么。这对这两个问题都至关重要,因为它在所有情况下都被完全使用。您需要确保它是“干净”的特殊字符,并根据需要引用,以便在代码/脚本中用作文本。在我们知道该值是什么之前,我们所做的只是猜测。#定义MyAppVersion GetFileVersion(“Release\myFile.dll”)该版本看起来像“1.0.0.3”,只是添加了getversion函数。它返回一个字符串。这不是一个常量。这是一个由Inno设置预处理器(ISPP)认可的“神奇词汇”(可能不是官方术语)。
StrToInt(GetVersion(Some string, this is!), 0);