![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| jimbo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.6.2009 Где: Южно-Сахалинск Репутация: нет Всего: нет |
Привет всем!
Хочется написать ддл-ку, чтобы при ее присоединении к программе, необходимо было создать колбэк функцию для общения с длл. Как это сделать? Допустим, длл считывает файл периодически, в файле просто цифры или текст, считывает в буфер, что-то типа:
а в клиенте мы подгружаем нашу длл, создаем колбэк и получаем текущий буфер если он изменился или там каждые 5 секунд. Как написать колбэк? Помогите пожалуйста, желательно с примерами кода) --------------------
Я не играю в шахматы - в шахматах я борюсь. А.А.Алехин |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
И зачем тут callback? Callback - это функция в твоем коде, вызываемая откуда-то извне, по наступлению конкретного события.
Чтобы получать доступ к буферу каждые 5 минут, нужно написать соответствующий код - в клиенте, разумеется. Повесить его на таймер, например. А в DLL предусмотреть функцию типа GetBuffer(). Сравни, чтобы сделать через callback, тебе нужно: - написать callback-функцию а основном коде - написать в DLL метод установки callback (типа SetCallBack (...)) и завести переменную, в которой ты будешь его хранить - запустить каким-то образом таймер, по которому нужно вызывать callback - т.е. либо к какому-то окну приложения цепляться (его еще нужно получить) либо создать поток (еще один) с WaitableTimer... -------------------- ... |
|||
|
||||
| jimbo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.6.2009 Где: Южно-Сахалинск Репутация: нет Всего: нет |
я может неправильно выразился.
Мне хочется написать что-то наподобие ДДЕ сервер-клиент приложения, только со своими данными. Клиент делает подключение, дает понять серверу что хочет получать данные и создает колбэк для принятия этих данных только тогда когда у сервера эти данные появляются. сервер передает что-то типа: код сообщения, данные1, данные2, данные3 и.т.д. в колбэке клиент делает обычный свитч на код сообщения и кучу веток обработки. Функция GetBuffer() на мой взгляд тривиальна, что если переменных много? мне для каждой писать свою функцию? В общем-то можно конечно, но хочется также изучить процесс создания колбэков. --------------------
Я не играю в шахматы - в шахматах я борюсь. А.А.Алехин |
|||
|
||||
| jonie |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
Кроме того, для этих целей (тех что вы описываете) есть КУЧА так называемых MQ-реализаций - например XMPP, AMPQ, MSMQ, Stomp, MS BizTalk - вам нужен велосипед ? Впрочем, конечно систему можно сделать и как описываете её вы...
каллбэк это просто функция, с т.з. C++ это обычный указатель на память..... т.о. в неком общем *.H файле (SDK в общем)
далее в exe дефайните THIS_IS_EXE_FILE, например в stdafx.h ПЕРЕД включением нашего SDK-шного H файла. и описываете функцию регистрации:
после чего пишите длл-ки:
в общем сумбурно объяснил.. наверно надо пример ваять... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||||||||
|
|||||||||||
| jimbo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.6.2009 Где: Южно-Сахалинск Репутация: нет Всего: нет |
Да нет, нормлаьно объяснили, спасибо
Добавлено через 3 минуты и 30 секунд я просто так понял .что колбэки никто не использовал, слишком муторно и есть другие реализации. я просто хотел изучить процесс обработки сообщений между окнами и диалогами. --------------------
Я не играю в шахматы - в шахматах я борюсь. А.А.Алехин |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |