Как установить обработчик события?

Модераторы: Romeo, Hawk, Absurd, WinMain, DeeJayC

Ответить
Vyacheslav
Сообщения: 11
Зарегистрирован: 27 фев 2005, 13:52

Как установить обработчик события?

Сообщение Vyacheslav » 27 фев 2005, 14:11

Уважаемые программисты, помогите плз
Вынужден писать на VC++ 6.0 который знаю пока не очень
Я подключил к проекту обьекты из Type Library (...dll)
без проблем обращаюсь к их методам, есть такие:

CreateEvent()
Start()

куда и как вставить обработчик события?

Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Сообщение Romeo » 09 мар 2005, 11:56

Можно немного подробнее? Какое событие требуется обработать?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

Vyacheslav
Сообщения: 11
Зарегистрирован: 27 фев 2005, 13:52

Сообщение Vyacheslav » 09 мар 2005, 18:04

Поподробней конечно можно: Type Library создана для программирования устройства управления шаговым эл. мотором. Есть событие с параметром, определяющим что именно произошло (error, move done, limit sw....)
В Delphi все было просто: когда я присоединил к проекту Type Library у меня появился компонент, я положил его на форму и все, у меня есть обработчик событий, анализируй переданный параметр и делай что нужно
А как же это сделать в Visual C++ 6.0 ???

Спасибо

Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Сообщение Romeo » 10 мар 2005, 11:20

По всей видимости в соответствующем COM объекте, который должен управлять устройством, есть так называемый dispinterface, т.е. специальный интерфейс, методы которого вызываются через Dispatch. Для того, чтобы прослушивать вызовы этих методов, пользователь COM обекта должен отимплементить dispinterface и подключить имплементацию к COM объекту с помощью, например, AtlAdvise, если мы используем ATL.

Подробности в MSDN. Так же могу посоветовать неплохую литературу: "Beginning of ATL 3 COM" by Richard Crimes. Расчитано на американских программистов, которые отличаются определённой тупостью, потому разжовано до предела. Рекомендую.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

Vyacheslav
Сообщения: 11
Зарегистрирован: 27 фев 2005, 13:52

Сообщение Vyacheslav » 24 мар 2005, 16:03

отимплементить dispinterface и подключить имплементацию к COM объекту
Можно об этом чуть подробнее?
(Рекомендованную книгу я пока не нашел)
Спасибо

Ответить