2012-01-03 79 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