![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.12.2009
Сообщений: 29
|
![]()
доброго времени суток,господа.
пишу программку с использованием dll. В самой dll находится некоторая функция, реагирующая на события в винде и посылающее сообщение в программу,если происходит необходимое событие. Поразмыслив,решил что лучше всего будет реализовать это не через функцию,которая возвращает значения в программу,а через Postmessage(). Собственно в postmessage() надо указать handle формы, которой передаем сообщение (т.е. той же форме,что и вызвала dll). Возникает 2 вопроса: как в dll передать handle формы? Предполагаю,что через функцию,т.е. примерно так: код программы: Код:
Код:
второй вопрос: предположим у приложения,вызвавшего dll нет формы. Как тогда передать сообщение в программу ведь handle по сути нет? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Вродк так надо:
Код:
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#3 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
Код:
http://www.rsdn.ru/article/qna/ui/conhandl.xml |
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]() Цитата:
Простой callback не устроит?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
![]() |
![]() |
![]() |
#5 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
Что значит "передать в DLL чего-то там"? формулировка неверная заранее. Правильнее реализовать в дллке не функцию, а класс, и в конструкторе передавать хэндл окна как параметр. Но правильно сказали, что и в этом случае класс из длл не сможет перехватывать сообщения, ведь посылаются они окну. В этом случае логично создать в приложении callback-метод перехвата всех сообщений форме, который будет ретранслировать их в метод класса из длл на обработку.
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вспомогательная форма в DLL. Передача данных. | Arkuz | Общие вопросы Delphi | 7 | 16.04.2011 13:05 |
Передача StringGrid в DLL | Adamrus | Общие вопросы Delphi | 7 | 30.11.2009 21:46 |
передача фрейма из dll | BESS | Компоненты Delphi | 1 | 20.04.2009 18:54 |
Передача данных из VC++ DLL в Delphi App | Kosoglaz | Общие вопросы C/C++ | 2 | 05.02.2008 10:53 |
Передача данных(массива) через DLL. | acorables | Общие вопросы Delphi | 4 | 05.02.2007 13:16 |