Глобальные переменные в Stealth DLL
Posted: 15.05.2012 22:05
Code: Select all
PROGRAM Test;
VAR
TestArray: array of Integer;
LenArray: Integer;
Procedure MyProc;
Var
i: Integer;
Begin
LenArray := LenArray + 1;
AddToSystemJournal('==== LenArray = ' + IntToStr(LenArray) + ' ====');
SetLength(TestArray,LenArray);
TestArray[LenArray - 1] := LenArray;
for i := 0 to Length(TestArray) - 1 do
AddToSystemJournal('TestArray[' + IntToStr(i) + '] = ' + IntToStr(TestArray[i]));
End;
BEGIN
while LenArray < 3 do MyProc;
END.
выполняется, и видно что переменные TestArray и LenArray меняют свои значения, но при загрузке скрипта в DLL эта операция не выполняется (наверно так и задумано). Далее в DLL несколько раз запускаю процедуру MyProc, которая, по идее, должна менять значения переменных TestArray и LenArray (я так понимаю они глабльны для данного скрпта и поэтому видны для всех процедур-функций данного скрипта), но этого не происходит.while LenArray < 3 do MyProc;
Скорее всего, по этой же причине, в скриптах запущенных в DLL коммада Ignore() работает пока работает функция её вызывающая, как только функция отработала список игнора обнуляется.
Подскажите как сделать чтобы скрипты запущенные в DLL работали корректно?