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