Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Глобальные переменные в Stealth DLL

тут можно задать вопрос по скриптингу
Post Reply
Gauhar
Novice
Novice
Posts: 87
Joined: 08.07.2008 17:40

Глобальные переменные в Stealth DLL

Post by Gauhar »

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.
При запуске данного скрипта в Stealth Client'е операция
while LenArray < 3 do MyProc;
выполняется, и видно что переменные TestArray и LenArray меняют свои значения, но при загрузке скрипта в DLL эта операция не выполняется (наверно так и задумано). Далее в DLL несколько раз запускаю процедуру MyProc, которая, по идее, должна менять значения переменных TestArray и LenArray (я так понимаю они глабльны для данного скрпта и поэтому видны для всех процедур-функций данного скрипта), но этого не происходит.
Скорее всего, по этой же причине, в скриптах запущенных в DLL коммада Ignore() работает пока работает функция её вызывающая, как только функция отработала список игнора обнуляется.
Подскажите как сделать чтобы скрипты запущенные в DLL работали корректно?
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Глобальные переменные в Stealth DLL

Post by CFA »

Сейчас каждый запуск процедуры через hotkey равноценен запуску скрипта, поэтому значение переменных между вызовами не сохраняется.
Я пока не занимаюсь этой частью стелса, поэтому ближайшее время ждать изменений не стоит.
yuras
Novice
Novice
Posts: 142
Joined: 11.01.2011 10:34

Re: Глобальные переменные в Stealth DLL

Post by yuras »

Gauhar wrote: Подскажите как сделать чтобы скрипты запущенные в DLL работали корректно?
Используй SetGlobal/GetGlobal
Gauhar
Novice
Novice
Posts: 87
Joined: 08.07.2008 17:40

Re: Глобальные переменные в Stealth DLL

Post by Gauhar »

Спасибо.
Post Reply