Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

Отлов ("перехват") событий VCL приложением из KOL DLL   Найти похожие ветки 

 
Fregl ©   (2007-02-27 11:08) [0]

Уважаемые гуру делфи программирования :)
Столкнулся вот с такой проблемкой:
Есть приложение на VCL (в силу громоздкости используемых контролов
перевести проэкт в KOL не представляется возможным на данный момент) суть которого - прем данных из компорта или сети, обработка онных с ипользованием данных из mySQL БД.
Так как приложение получается довольно громоздким, я хочу часть функций и контролов повыносить во внешние библиотеки: компоненты для работы с БД, для работы с COM портом.

И вот первый вопрос - хочу вынести компоненту для работы с COM портом, и не просто вынести а заменить ее на контрол KOL MHComPort.
Возникли следующие вопросы:
-при создании объекта NewMHComPort(Parent:PControl) что нужно указывать в качестве родителя(владельца)? Я так понимаю обычно туда пишется Applet, так как от него будут передаваться message работы с КомПортом (если не ошибаюсь). Что же мне туда переать из VCL приложения?
-как мне отлавливать события такие как прием данных, ошибки и прочее?
пробовал передавать адрес процедуры оболчки, но в ДЛЛ вылетает ошибка
вот пример кода в ДЛЛ


procedure  SetNewHandler(Proc:Pointer);stdcall;
begin
 Comm1.OnRxChar:=Proc;
end;


в самом VCL приложении есть процедура-оболчка, в которую будут передаваться данные с ком-порта и обрабатываться

procedure  IORead(Data:Pointer; Count:Word);stdcall;
begin
// тут идет обработка данных с порта
end;

вызываю процедуру установки обработчика события
SetNewHandler(@IORead) и здесь происходит исключение по адресу в самой DLL.

Какие есть предложения, советы по этому поводу?


 
Vladimir Kladov   (2007-02-27 14:36) [1]

DLL можно отлаживать. По крайней мере в Delphi6 с этим проблем нет. Указывается основное (Host) приложение, запускается, ставятся точки останова в нужном месте, и вперед - смотреть, где у вас ошибка.



Страницы: 1 вся ветка

Текущий архив: 2007.09.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
2-1188917942
delphiForever
2007-09-04 18:59
2007.09.30
быстрая работа с графикой без DirectX и OpenGL


15-1188304203
@!!ex
2007-08-28 16:30
2007.09.30
Task Manager. Куда копать?


15-1188799430
vajo
2007-09-03 10:03
2007.09.30
Что-то не пойму как у ноутбука отключить цифровую клавиатуру


3-1180000558
NOD
2007-05-24 13:55
2007.09.30
Кодировки в DBase


1-1184521447
Tack
2007-07-15 21:44
2007.09.30
Как получить высоту строки TRichEdit?