![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть DLL, написанная на C++, с отправкой сообщений на COM порт я разобрался, а с приемом никак не могу.
В оригинале выглядит так: 1. Назначается окно-приемник событий Код:
typedef int (*Fvfconn_SetWinHandle)(VFCONNt_hdr hdr, UINT Msg, HWND hWndSet); Код:
void __fastcall TForm1::ConnectMsg(TMessage& Message) { int sz; unsigned long Stat; char sTmp[80]; unsigned char * Bf; VFCONNt_hdr hdr_out=(VFCONNt_hdr)Message.LParam; strcpy(sTmp,""); switch (Message.WParam) {Описание событий} 1. Назначаю окно Код:
Re := vfconn_SetWinHandle(hdr, Msg, han); Код:
procedure TForm1.ConnectMsg(var Message: TMessage); var Stat: longword; hdr_out: Pointer; S: string; sz: integer; bf, strAddr: Pchar; begin hdr_out := vfconn_new(PAnsichar(inttostr(Message.LParam))); case Message.WParam of //тут идет описание событий Однако, эта процедура вобще не вызывается... |
#2
|
|||
|
|||
![]() Ну дык я не вижу связи между сообщением и его обработчиком. При описании обработчика сообщения в заголовке класса надо указать для какого он сообщения предназначен. Например:
Код:
type TForm1 = class(TForm) ... procedure MyMessageHandler(var Message : TMessage); message WM_MESSAGE; |
#3
|
|||
|
|||
![]() Для процедуры ConnectMsg я указал
Код:
procedure ConnectMsg(var Message: TMessage); message WM_USER; И в константах указано Код:
Msg = WM_USER; Последний раз редактировалось Demonuka, 04.12.2011 в 11:46. |