View previous topic :: View next topic |
Author |
Message |
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Wed Mar 02, 2005 12:20 Post subject: Вызов процедуры обнуляет переменные |
|
|
Во время написания плагина 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 |
|
|
yurig
Joined: 13 Jan 2005 Posts: 3
|
(Separately) Posted: Wed Mar 02, 2005 17:34 Post subject: |
|
|
Скорее всего, у тебя там затирается стек. Обычно такое бывает при выходе за границы локального массива, или при записи по неправильному указателю. Еще надо проверить, как объявлены (и написаны!) функции FileType, которые вызываются из GetFieldValue, может быть, это там происходит. |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Wed Mar 02, 2005 22:51 Post subject: |
|
|
Quote: | Еще надо проверить, как объявлены (и написаны!) функции FileType, которые вызываются из GetFieldValue, может быть, это там происходит. |
Надо бы А кто мне исходники даст этого плагина?
Себя гением программирования не считаю, но в моём коде ошибки быть не должно (хотя бы потому, что остальные плагины работают замечательно). |
|
Back to top |
|
|
|
|
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
|