Beasiofun
|
|
Си и КОМ объекты чайнику10.09.2012, 14:22. Показов 4444. Ответов 4
Метки нет Все метки)
(
Доброго времени суток,
Друзья объясните чайнику как обрабатываются/получаются события КОМ-сервера на Си/Спп В голове каша, а интересуюсь не из праздного любопытства. С КОМ объектами ранее не общался да и с мелкософтом ранее сталкивался на уровне программирования мало.(см. никак) Объесню "на пальцах" задачу да за одно уровень познаний ![]() есть некоторый сервер по технологии ком и есть описания всех его методов и событий, с методами (они же привычнее-функции) более менее понятно: импортируем библиотеку #import "блабла\\ccLib.dll" //к примеру подвязываем пространство using namespace ссLib; далее говорим ccLib *serv; HRESULT hr = CoCreateInstance(CLSID_Название, NULL, CLSCTX_SERVER, IID_Название, (void**)&serv); в результате получаем нужный набор функционала ...и ПОЛУзагадочное слово "нить" ) далее работаем: serv->func0(arg1,arg2,и т.д); тут все ясно как день,"первый раз в первый класс" ![]() а далее начинается "новоучения" для меня после вызова метода который тебя "подписывает" на события происходящие на сервере их нужно получить и соответственно обработать. Я так понимаю (скорее всего не правильно понимаю) что нужно каким то образом указать обработчик событий этого сервера и как минимум сказать что "это есть обработчик": есть событие - вызывай его. По аналогии с оконным обработчиком Вин - Сказали что есть класс окна, заполнили и запихали адрес обработчика в структуру, зарегистрировали в системе, скормили ее адрес в функцию создания окна.Создали окно, начали "фантазировать" обработку полученных от системы сообщений (по сути просто переданных из вне агрументов) внутри функции оконного обработчика. А с КОМ сервером как сделать подобное я в душе не.. не представляю. П.С. из за многочисленной документации уже мозг закипает, у меня,честно, задача примитивная - дайте пример просто плз кто знает, уровня "hello world" - как получить event из COM. |
10.09.2012, 14:22 | |
Ответы с готовыми решениями:
4
Qt и ком объекты ком порт для компьютера без ком
|
91 / 8 / 1
Регистрация: 02.08.2012
Сообщений: 40
|
|
10.09.2012, 17:17 | |
@Beasiofun,
см. вложение
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,429
|
|
12.09.2012, 08:40 | |
http://bulletinsite.net/index.... ex&page=54
а вы создаете такой объект или пользуетесь объектом поддерживающим такой фокус?
0
|
Beasiofun
|
|
13.09.2012, 13:09 | |
>http://bulletinsite.net/index.... ex&page=54
>а вы создаете такой объект или пользуетесь объектом поддерживающим такой фокус? я пишу клиент на реализованный сторонний сом-компонент (сервер = EXE; CLSCTX_LOCAL_SERVER), сейчас вроде разобрался как работают вообще ком компоненты (базу понял), по факту нового не чего не узнал с момента своего поста но знания структурировал ![]() Добавлено через 4 минуты hwms, за ссылочку спасибо, с начало написал.. потом увидел Ваш пост - думаю поможет.. сейчас как раз читаю.. ![]() |
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,429
|
|||||||||||
13.09.2012, 21:46 | |||||||||||
Схема выглядит так. Клиент вызывает функцию Advise. Пример для OPC DA:
За ссылку прошу прощения - там почему-то исчез материал. Просто вбейте в google фразу 3.15 Точки соединения и найдете, то что я хотел передать.
0
|
13.09.2012, 21:46 | |
Помогаю со студенческими работами здесь
5
Функция создает объекты и указателями на них заполняет массив. При выходе из функции вызываются деструкторы объектов. Как сохранить объекты? В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться БД избер ком Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
|
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
|
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
|
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
|
Образование и практика
Igor3D 21.03.2025
Добрый день
А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
|
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
|
Async/await в Swift: Асинхронное программирование в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
|
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
|
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
|
C++26: Индексирование пакетов и метапрограммирование
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
|