Inno-setup: функция не найдена? - PullRequest
1 голос
/ 30 октября 2011

Я пытаюсь создать сценарий, используя сценарии 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' не найдена.

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

1 Ответ

1 голос
/ 30 октября 2011

Работает ли это, если вместо этого сделать

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...