Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2016, 23:11   #1
Son
Пользователь
 
Аватар для Son
 
Регистрация: 24.11.2008
Сообщений: 76
По умолчанию Блокируется объект класса под интерфейсом

День добрый. Попытаюсь объяснить свою проблему. В программе реализован интерфейс, который описывает логику источника данных (возвращает текст и значение параметров). Пробую реализовывать под ним стандарт OPCDA. В данном стандарте создается объект (CallBack функция), ссылка на который передается внешнему OPC-серверу, который вызывает эту функцию при изменении параметров. Получается так, что внешний OPC сервер не может вызвать эту функцию, поскольку она блокирована интерфейсом для монопольного доступа. Можно ли как то создавать объект класса за интерфейсом, который был бы доступен и другим потокам? Путанно объяснил но как то так. Если просто делать класс с обращением по OPC то все нормально, внешний OPC сервер CallBack функцию вызывает и данные обновляются. Но если к объекту класса ссылаться через интерфейс, то CallBack функция не отрабатывает, пока ссылка интерфейса не осободится.
Лучше сдохнуть, чем жить с иглой в яйце (Кащей Бессмертный)
Son вне форума Ответить с цитированием
Старый 03.08.2016, 07:57   #2
Son
Пользователь
 
Аватар для Son
 
Регистрация: 24.11.2008
Сообщений: 76
Хорошо

Нашел решение. Надо перед работой с COM объектами вызвать:

Код:
CoInitializeEx(nil, COINIT_MULTITHREADED);
Раньше было:

Код:
CoInitialize(nil);
Лучше сдохнуть, чем жить с иглой в яйце (Кащей Бессмертный)
Son вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, чтобы при наведении мышкой на объект, который находится под другим, этот объект выходил на первый план? Zaza7 HTML и CSS 3 17.01.2013 10:23
Определение типа класса по переменной на объект этого класса при компиляции phomm Общие вопросы Delphi 24 08.04.2011 14:11
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 17:37
Параметр конструктора класса = объект этого класса nazavrik Общие вопросы C/C++ 6 14.02.2010 13:48
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? TwiX Общие вопросы Delphi 3 15.11.2009 00:54