2016-07-12 6 views
2

Ich habe folgendes Inno Setup-Skript, und ich erhalte diese Störung auf der SaveStringToFile Linie:String und Integer verketten nicht mit "Konflikt" Typenfehler

Type Mismatch

Kann jemand Finde meinen Fehler?

Vielen Dank!

var 
    ErrorCode: Integer; 
begin 
    ShellExec('open', 'taskkill.exe', '/f /im procterm.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); 

    SaveStringToFile('c:\program data\myapp\innolog.txt', 'Error code for procterm was: ' + ErrorCode, True); 
end; 
+0

Side: Nicht hart Code des 'c: \ program data' (es ist sowieso 'ProgramData' auf Windows 10). Verwenden Sie die Konstante '{commonappdata}'. –

+0

@MartinPrikryl Es ist nur für mich, ich werde diesen Code auf keinem Kundencomputer ausführen. Ich wollte sicherstellen, dass Inno Setup den Text dort schreibt, wo ich es möchte. Aber offensichtlich nicht. Die Zeichenfolge wird nicht geschrieben. :( – tmighty

+0

@MartinPrikryl Ist das korrekt? Ich bin nicht sicher über die Anführungszeichen: SaveStringToFile ('{commonappdata} \ myapp \ inno.txt', 'Fehlercode für procterm war:' + IntToStr (ErrorCode), True); – tmighty

Antwort

2

Ihr Problem hat nichts mit SaveStringToFile zu tun.

Das eigentliche Problem ist, dass Sie auf "Summe" eine Zeichenkette mit einer Zahl (eine ganze Zahl) versuchen:

'Error code for procterm was: ' + ErrorCode 

Das in Pascal/Pascal-Script nicht möglich ist.

Sie haben die Anzahl/integer in einen String mit den IntToStr function zu konvertieren:

'Error code for procterm was: ' + IntToStr(ErrorCode) 

Oder das Format function wie verwenden: Note

Format('Error code for procterm was: %d', [ErrorCode])