![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Будет ли работать PostMessage из dll? [D7, WinXP]
Aleksandr. © (2005-05-24 17:51:00)в библиотечке слишком дофига получилось переменных типа функция, которым присваиваются из программы обработчики разных событий. Подумал, может, ну его нафиг все и через PostMessage главному окну программы посылать, да только можно ли такое делать - раньше о таком не слыхал...
Игорь Шевченко (2005-05-25 10:29:00) [1]Aleksandr. (24.05.05 18:39) [7]
И все-таки, сдается мне, что ты здорово путаешь. Не тот механизм пытаешься использовать. Ты приведи для образца, что ты хочешь заменить передачей сообщения и каким образом.
Aleksandr. (2005-05-24 18:39:00) [2]Игорь Шевченко © :
В чем же разница? В использующей библиотеку программе по-любому нужно будет создавать методы, обрабатывающие все изменения и сообщения, так проще ведь им вешать (var Msg : TMessage); message такая-то, чем гонять их адреса в dll. В смысле, кода меньше.
Игорь Шевченко (2005-05-24 18:14:00) [3]Aleksandr. (24.05.05 18:08) [4]
> объявлять в библиотеке функцию, через которую можно назначить
> им функции программы, в библиотеке везде втыкать проверку,
> не nil ли нужная переменная и вызывать ее, а так большинство
> просто зарегистрировал сообщение и гоняй его с параметрами...
Сдается мне, что это совершенно разные вещи - сообщения и функции
Eraser (2005-05-24 18:10:00) [4]Aleksandr. (24.05.05 18:08) [4]
просто зарегистрировал сообщение и гоняй его с параметрами...
Сомительное приемущество.
Aleksandr. (2005-05-24 18:08:00) [5]Игорь Шевченко © :
Ну как же зачем. Приходится объявлять кучу переменных типа:
var
vSesDllLog : procedure(Msg : shortstring);
vTCPOnError : function(iStatus : integer; pErrorStr : PChar) : longbool; stdcall;
vTCPOnStatus : function(iStatus : integer) : longbool; stdcall;
vTCPFileInfo : function(pFileName : PChar; iPos, iSize, iStatus : integer) : longbool; stdcall;
vTCPRASError : function(pRASErrror : PChar) : longbool; stdcall;
vSessionFinish : function(const iIssue : integer=0) : longbool; stdcall;
vTCPRASStatusChange : function(pRASMessage : PChar) : longbool; stdcall;
объявлять в библиотеке функцию, через которую можно назначить им функции программы, в библиотеке везде втыкать проверку, не nil ли нужная переменная и вызывать ее, а так большинство просто зарегистрировал сообщение и гоняй его с параметрами...
Игорь Шевченко (2005-05-24 18:01:00) [6]
> Подумал, может, ну его нафиг все и через PostMessage главному
> окну программы посылать, да только можно ли такое делать
> - раньше о таком не слыхал...
А зачем ?
Marser (2005-05-24 17:59:00) [7]Я бы скорее засомневался, можнно ли SendMessage использовать...
alpet (2005-05-24 17:55:00) [8]Будет, этому нет никаких препятствий.