Inno-setup: функция не найдена?

Я пытаюсь создать сценарий, используя сценарии Pascal, чтобы вернуть имя папки (но я хочу позже использовать ту же функцию для более широких результатов). Мой скрипт здесь:

;This is a test script
#define MySourceDir "D:\Temp\InnoTestSrc"
#define MyDestDir "D:\Temp\InnoTest"

[Setup]
DefaultDirName={#MyDestDir}
DisableDirPage=no
AppName="MyTestApp"
AppVersion=1

[Code]
function GetMyConstant(Param: String): String;
var
    strConst: string;

begin
    strConst := '{#' + Param + '}';
    MsgBox(strConst, mbInformation, MB_OK);
    Result := expandconstant(strConst);
end;

function GetDataDir(Param: String): String;
begin
  { Return the selected DataDir }
  Result := 'DummyString';
end;

[Files]
Source: {#MySourceDir}\TestFile.pdf; DestDir: {code: GetDataDir}

Однако, когда я пытаюсь скомпилировать его, я получаю

Ошибка компиляции! Строка: 29 Ошибка: Требуемая функция или процедура «GetDataDir» не найдена.

Я пытаюсь понять, почему компилятор не может найти функцию, но я не понимаю. Любая помощь в моей (возможно, очевидной) ошибке будет высоко оценена


person LittleFish    schedule 30.10.2011    source источник


Ответы (1)


Это работает, если вы делаете

Source: "{#MySourceDir}\TestFile.pdf"; DestDir: "{code:GetDataDir}"

вместо? Я думаю, что да. Действительно, стоит прислушаться к компилятору, который говорит, что функции с именем <space>GetDataDir не существует. Конечно нет! Ваша функция называется GetDataDir!

person Andreas Rejbrand    schedule 30.10.2011
comment
ХОРОШО! Ты победил! Прошу прощения, что потратил ваше время на такую ​​глупую ошибку!!!! Я плохо посмотрел на сообщение об ошибке! Большое спасибо, что нашли время, чтобы исправить меня! - person LittleFish; 30.10.2011