2012-01-03 27 views
2

请帮我用下面的代码:Inno Setup的脚本:标识符预期的错误

[Code] 
var 
    AppVersionNumber: Integer; 
    DBVersionNumber: Integer; 
function GetAppVersion:Integer; 
    var 
     AppVersion: AnsiString; 
    begin 
     ExtractTemporaryFile('info.dat'); 
     LoadStringFromFile(ExpandConstant('{tmp}\info.dat'), AppVersion); 
     AppVersionNumber := StrToInt(Copy(AppVersion, 1, 6)); 
     DBVersionNumber := StrToInt(Copy(AppVersion, 7, 12)); 
     GetAppVersion := AppVersionNumber; <== here is error 
    end; 

我不明白什么是错在这里。 Inno设置说有“标识符预期”错误。如果我尝试在GetAppVersion这一行代替Result(为什么?我不知道,但我在例子中看到它),它说“GetAppVersion的无效原型”。

这段代码有什么问题?请帮助

+1

应与'结果工作:='。 – 2012-01-03 09:54:13

+0

但它不是:( – mimic 2012-01-03 18:21:41

回答

9

Result :=需要指定一个函数的结果/返回值(你不把它分配给了功能名称,如VB)

“无效的原型”错误是最有可能是因为你在{code:...}常量中使用它,要求被调用的函数始终具有单个字符串参数。
尝试使用这种从the help file采取:

function GetAppVersion(Param: String): String; 
+0

但是我的函数没有任何参数,它应该如何看? – mimic 2012-01-03 18:21:25

+2

确切地说,如果从一个'{code:...}'常量使用它,它必须有一个字符串参数并返回一个字符串,根据我链接到的帮助文章。如果你没有使用'{code:...}'常量,然后尝试向我们展示现在失败的代码和调用它的代码 – Deanna 2012-01-03 20:41:38

+0

是的,你是完全正确的,我认为这些函数和平时一样,但是它们不是,你不能返回任何东西而不是字符串或布尔值,但现在它至少可以被编译。谢谢 – mimic 2012-01-04 20:50:48