Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Вызов процедуры обнуляет переменные

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Wed Mar 02, 2005 12:20    Post subject: Вызов процедуры обнуляет переменные Reply with quote

Во время написания плагина super_wdx столкнулся со следующей проблемой: одна из процедур программы при работе с плагином FileType обнуляет все строковый переменные той процедуры, из которой она была вызвана.
Т.е, выглядит примерно так:

Code:

Function GetFieldValue (const PlugName, FieldName, FileName:string):string;
Begin
//загружаем плагин, получаем из него значение, возвращаем его
//внутри - всё в порядке, получаем значение из wdx-плагина.
result:=ТО_ЧТО_НАДО; //возвращаемое значение - правильное.
End;

Function DecodeContentString (ContentString:String):String;
Var
//some string variables here
a,b,c,x:string;
Begin
a:=SomeFuncResult;
b:=SomeOtherFuncResult;
c:=ThirdFuncResult;
//тут всё в порядке
x:=GetFieldValue (a,b,c);
//вот тут-то начинаются глюки - все строковые переменные становятся пустыми.
End;


При работе с ЛЮБЫМ плагином всё тип-топ, все переменные сохраняются. При работе с FileType в GetFieldValue всё проходит нормально, но x в DecodeContentString (и все строковые переменные в DecodeContentString) обнуляются.

Пробовал переделывать передачу параметров по всякому (глобальными переменными, ссылками, как угодно) - результаты те же - не работает только с FileType.wdx. Посмотрел, как ведёт себя WdxGuide с эти плагином - тоже выдаёт ошибку (ессно, когда отлаживаешь код), но проходит дальше - там по-другому сделана передача параметров, найденное поле сразу добавляется в список. Мне этот вариант ну никак не подходит.

Может быть кто-то сталкивался с такой проблемой, и знает как это исправить?
Back to top
View user's profile Send private message
yurig



Joined: 13 Jan 2005
Posts: 3

Post (Separately) Posted: Wed Mar 02, 2005 17:34    Post subject: Reply with quote

Скорее всего, у тебя там затирается стек. Обычно такое бывает при выходе за границы локального массива, или при записи по неправильному указателю. Еще надо проверить, как объявлены (и написаны!) функции FileType, которые вызываются из GetFieldValue, может быть, это там происходит.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Wed Mar 02, 2005 22:51    Post subject: Reply with quote

Quote:
Еще надо проверить, как объявлены (и написаны!) функции FileType, которые вызываются из GetFieldValue, может быть, это там происходит.

Надо бы Smile А кто мне исходники даст этого плагина?
Себя гением программирования не считаю, но в моём коде ошибки быть не должно (хотя бы потому, что остальные плагины работают замечательно).
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group