Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IMethodHandler - параметры?


d_oleg ©   (2007-06-25 22:30:00) 

Кто-нибудь задавал универсальные обработчики обытий с помощью интерфейса IMethodHandler из ObjAuto.pas? Хотелось бы проверить свой код, ибо возникают проблемы с передачей параметров. Параметры, передаваемые через регистры, передаются нормально, а при передаче через стек передается черте-что :(


d_oleg   (2007-06-26 11:50:00) [1]

Нет, дело не в этом, дело в смещении.

Ты касался этой темы? Я почему спрашиваю, там разбираться надо.
Если я правильно понимаю, при передаче параметров внутри процедуры-обработчика события объекта TMethodHandlerInstance RegisterStub(ObjAuto.pas, строки 772-776) принимаются параметры события, причем все они, если верить отладчику, попадают в TParameters.Stack, как параметр вызова процедуры Handler, что для меня странно. Почему это происходит - не знаю :(
В-общем, если начальное смещение в стеке (ObjAuto.pas, 679) увеличивать на размер 2х регистров, то все передается как надо. Но как-то это все неправильно...


Плохиш   (2007-06-26 11:06:00) [2]

stdcall/cdecl/...


d_oleg   (2007-06-26 09:33:00) [3]


> Надо прямо указывать направлениое пвередачи параметров.
поясни (in/out что ли?)


Плохиш   (2007-06-25 22:34:00) [4]


> ибо возникают проблемы с передачей параметров

Надо прямо указывать направлениое пвередачи параметров.


Наверх

Титульная страница Поиск, карта сайта Написать письмо