Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Общение Приложение - DLL

286
07 февраля 2008 года
misha_turist
572 / / 28.11.2005
Доброго времени суток уважаемые коллеги!

Я делаю некую систему, которая будет зашита в библиотеку. Работать она будет постояно и много, не зависимо от приложения. Т.е. по сути приложение, это клиент для управления. Общение их будет построено по схеме команда - ответ (сообщениЯ о выполнении действий над командой). Сообщений будет много.

Ну так вот в чём вопрос, как организовать процес общения ? :
  1. Приложение регулярно опрашивает библиотеку (как функция GetMessage) и получает информацию о новых сообщениях и их вызывает;
  2. Библиотека сама извещает приложение о новых сообщениях, и если так, то как это можно будет реализовать? т.к. я не знаю, как из библиотеки вызывать процедуры приложения;
  3. Стоит ли использовать API? (в основном для 2 варианта);
  4. Или ещё как-то?
Сзарание спасибо за ответы.:)
3
07 февраля 2008 года
Green
4.8K / / 20.01.2000
Цитата: misha_turist

Я делаю некую систему, которая будет зашита в библиотеку. Работать она будет постояно и много, не зависимо от приложения.


Это как? Может, ты имел в виду сервис, а не библиотеку?

Цитата: misha_turist

Т.е. по сути приложение, это клиент для управления. Общение их будет построено по схеме команда - ответ (сообщениЯ о выполнении действий над командой). Сообщений будет много.


Если много, требуют определенного порядка обработки и не критичны ко времени,- ставь в очередь.

Цитата: misha_turist

Приложение регулярно опрашивает библиотеку (как функция GetMessage) и получает информацию о новых сообщениях и их вызывает;


GetMessage никого не опрашивает, а ждет появления сообщений в очереди.

Цитата: misha_turist

Библиотека сама извещает приложение о новых сообщениях, и если так, то как это можно будет реализовать? т.к. я не знаю, как из библиотеки вызывать процедуры приложения;


Callback

Цитата: misha_turist

Стоит ли использовать API? (в основном для 2 варианта);


Вопрос не понят.

Цитата: misha_turist

Или ещё как-то?


Есть два вида реакции - синхронная и асинхронная. Определись, какая тебе нужна?

286
07 февраля 2008 года
misha_turist
572 / / 28.11.2005
Цитата: Green
Это как? Может, ты имел в виду сервис, а не библиотеку?


Я подумывал о сервисе, но я не умею их писать. :(

Цитата: Green

Если много, требуют определенного порядка обработки и не критичны ко времени,- ставь в очередь.


Это понятно, вопрос в том, как их выдёргивать от туда... А критичность по времени определяется своевременным уведомлением пользователя и не более.

Цитата: Green

GetMessage никого не опрашивает, а ждет появления сообщений в очереди.


:) Ну я же его как пример привёл. Я имел в виду, что приложение вызывает функцию библиотеки, которая возвращает сведения о новых сообщениях.

Цитата: Green

Callback


Т.е.? поясни пожалуйста.

Цитата: Green

Вопрос не понят.


Использование хендлов, событий и т.д. системы с функциями работы с ними. (к примеру GetMessage) или самописные средства.

Цитата: Green

Есть два вида реакции - синхронная и асинхронная. Определись, какая тебе нужна?


Моя система (не ОС) не будет ждать команд от приложения, а жить своей жизнью (кроме определённых случаев), но при их появлении будет выполнять те или иные действия.. (замедление, ускорение, изменение параметров, возвращение информации, запуск определённых процессов (не процессов ОС, а внутренних) и т.п.).

241
08 февраля 2008 года
Sanila_san
1.6K / / 07.06.2005
Цитата: misha_turist
Я подумывал о сервисе, но я не умею их писать. :(


http://msdn2.microsoft.com/en-us/library/aa984074.aspx
http://msdn2.microsoft.com/en-us/library/ms685141.aspx

Цитата: misha_turist
Т.е.? поясни пожалуйста.

В общих чертах это описано здесь. Подробнее - здесь.



Цитата: misha_turist
Использование хендлов, событий и т.д. системы с функциями работы с ними. (к примеру GetMessage) или самописные средства.

Мы обычно используем события, хотя даже у нас это не единственный способ.

Цитата: misha_turist
Моя система (не ОС) не будет ждать команд от приложения, а жить своей жизнью (кроме определённых случаев), но при их появлении будет выполнять те или иные действия.. (замедление, ускорение, изменение параметров, возвращение информации, запуск определённых процессов (не процессов ОС, а внутренних) и т.п.).

Простой и тупой способ - вызвать некоторый метод библиотеки, а тот пусть делает, что нужно: запускает поток, или вызывает функцию, что угодно.

286
08 февраля 2008 года
misha_turist
572 / / 28.11.2005


Всё равно я не буду это изучать сейчас т.к. это не цель, да и систему я делаю так сказать "для себя"...

Я модель мира делаю, вот и получается, что она "жить" сама будет, а я только админестрировать. Если закончу. :)

Спасибо всем за помощь!

p.s. Если ещё будут дополнения пишите :)

241
08 февраля 2008 года
Sanila_san
1.6K / / 07.06.2005
В принципе, можно написать консольное приложение, и потом сделать его службой с минимальными трудозатратами. Мы так и пишем, в принципе, но – с расчётом на специфику служб.
286
08 февраля 2008 года
misha_turist
572 / / 28.11.2005
А какая там специфика? потомучто я в работе служб вообще не бум бум.
241
29 февраля 2008 года
Sanila_san
1.6K / / 07.06.2005
Цитата: misha_turist
А какая там специфика? потомучто я в работе служб вообще не бум бум.

Основная особенность - отсутствие интерфейса пользователя, отсюда следует, что нет ни форм, ни консоли. Вместо них можно использовать Event Log (чаще всего через события), TCP|UDP, можно ещё как-нибудь извернуться. Вот, собственно, практически вся специфика.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог