Inno setup Inno设置逗号错误

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

我在[Code]中有一个GetVersion函数,它返回一个字符串,如“1004”、“1003”等

我创建此函数是为了检查注册表值中的最低版本号并将其卸载

下面是一段代码,它给出了stroint转换行的错误点

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);