Innosetup は私を殺しています。RUNTIME 'Type Mismatch' エラーが表示されますが、これは私にとってまったく予想外のことです。Inno-setup 5.5.3 (u) を使用しています (「u」は Unicode バージョンを意味します)
2 次元配列をメソッドに渡そうとしています。
これが私の完全な例です。
[Setup]
AppName=EmptyProgram
AppVerName=EmptyProgram 1
UsePreviousAppDir=false
DefaultDirName={pf}\EmptyProgram
Uninstallable=false
OutputBaseFilename=HelloWorld
PrivilegesRequired=none
[Messages]
SetupAppTitle=My Title
[Code]
var
langMap : array[0..3] of array[0..1] of String;
function getMapVal(map : array of array[0..1] of String; key: String ) : String;
begin
Result:='not testing the body of the method';
end;
function InitializeSetup(): Boolean;
begin
MsgBox('Hello world.', mbInformation, MB_OK);
getMapVal(langMap, 'hello'); // this line here fails with type mismatch! Why?
Result := FALSE;
end;
この例は実行されますが、メソッドの呼び出しについては次のとおりです。
getMapVal(langMap, 'こんにちは');
コンパイルされるため、宣言に満足しています。しかし、呼び出し時に不一致エラー。私は何を間違っていますか?