Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++: COM, OLE, ActiveX

Войти
Регистрация
Восстановить пароль
 
Jurixx
-9 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 100
#1

Ожидание Com сервера - C++ COM

15.04.2016, 14:50. Просмотров 499. Ответов 7
Метки нет (Все метки)

Доброго времени суток. Есть две программы а.exe b.exe. b.exe содержит com объекты. Из а по средствам CreateOleObject запускаем b. При попытке закрытия b выскакивает предупреждение что в b имеются активные Com объекты и они станут не доступны тому приложению которое их вызвало. Если все таки нажимаю на ОК то b закрывается. При следующем открытии b из a происходит "Ошибка сервера". Подозреваю что некорректное завершение самого сервера, делать это нужно из а. Как реализовать корректное закрытие b?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2016, 14:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ожидание Com сервера (C++ COM):

Ожидание для ReadFile - C++
Доброго времени суток уважаемые жители форума ) Столкнулся с проблемой залипания ReadFile при работе с usb. Подскажите как сделать...

Ожидание ввода в течении заданного времени - C++
Суть задачи:Если пользователь в течении 30 сек не вводит ничего программа выполняет одно действие, если же вводит другое. В потоке мейна...

Ожидание ответа от сервера - C# WCF
Клиент1 шлет серверу запрос, в котором содержатся координаты. Координаты заносятся в БД на поле. Клиент2 шлет серверу тот же запрос, но с...

Ожидание ответа сервера - C# ASP.NET
IIS 7.5 Ожидание ответа сервера от чего зависит и как его снизить?

Ожидание ответа от сервера - C#
Здрастуйте, у меня такой вопрос например я отправляю POST запрос вот таким вот образом: secondStepForm = "Rquesbody"; HttpWebRequest...

Ожидание сообщений от сервера - JavaScript
Здравствуйте, пишу многопользовательскую игру змейка на джава скрипте. Реализовано управление змейкой с помощью клавиатуры ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vxg
Модератор
3163 / 1966 / 221
Регистрация: 13.01.2012
Сообщений: 7,528
15.04.2016, 17:59 #2
Цитата Сообщение от Jurixx Посмотреть сообщение
то b закрывается
может оно не закрывается? в диспетчере смотрели? и как происходит повторное открытие тоже нужно знать
0
Jurixx
-9 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 100
16.04.2016, 12:10  [ТС] #3
точно также. Исполдьзовал сеначала variant потом поменял на OleVariant, повторно запускается без ошибок но всеравно при закрытии выдает предупреждение что есть активные com обьекты.
0
vxg
Модератор
3163 / 1966 / 221
Регистрация: 13.01.2012
Сообщений: 7,528
16.04.2016, 12:53 #4
Предупреждение это одно а ошибка и краш это другое. Если вы закрываете Приложение с объектом и закрываете клиент а после этого запускаете его заново все работает?
0
Jurixx
-9 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 100
28.04.2016, 13:12  [ТС] #5
Бала ошибка в коде самого com обькта. Вот теперь как предупреждение победить. Как закрыть приложение с COM объектом, чтобы оно не вызывало предупреждение? Может можно из ком объекта получить доступ в приложение вызвавшее его?
0
vxg
Модератор
3163 / 1966 / 221
Регистрация: 13.01.2012
Сообщений: 7,528
28.04.2016, 13:28 #6
Цитата Сообщение от Jurixx Посмотреть сообщение
Как закрыть приложение с COM обьектом, чтобы оно не вызывало предупреждение?
лично у меня никаких предупреждений не выдается. пробовал вот на этом сервере com_local_server_test из темы Доступ или создание объекта в другом потоке запускал такой вот код
C++
1
2
3
4
    Variant app = CreateOleObject("ComServerTest.CoMyObject");
    int x;
    app.OleFunction("GetX", &x);
    Application->MessageBox(IntToStr(x).c_str(), "Message", MB_OK);
после показа сообщения (совершенно корректно показывало цифру 123 полученную от COM-объекта) не закрывая окно сообщения (то есть деструктор Variant не вызывался, ссылка на объект не освобождалась) закрывал консоль сервера. никаких предупреждений.
0
Jurixx
-9 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 100
01.05.2016, 18:32  [ТС] #7
нет, я другое имел ввиду. При вызове app.OleProcedure("metod",param); запускается графический интерфейс (главная форма приложения b.exe). Когда я закрываю эту форму то выдается предупреждение, что "это приложение содержит ком объекты запущенные другим приложением....". Я о этом предупреждении говорю
0
vxg
Модератор
3163 / 1966 / 221
Регистрация: 13.01.2012
Сообщений: 7,528
01.05.2016, 19:13 #8
Вы думаете если я покажу форму что-то поменяется)? Я конечно попробую но 99.99% что ничего не изменится и предупреждение выдаёт ваш код (как вариант его библиотечная часть)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2016, 19:13
Привет! Вот еще темы с ответами:

curl и ожидание ответа от сервера - PHP Сети
Кто подскажет как через curl определить ожидание ответа от сервера, и если он не отвечает больше 10 сек вывести сообщение, что сайт...

Ожидание клиентом включения сервера (DelphiSocket) - Delphi
В общем, такое дело, во время разработки курсового проекта поставил себе задачу - по нажатию кнопки сервер пытается подключиться к серверу,...

Не могу зайти в веб интерфейс сервера Zeroshell и нет пингов до сервера - Сети
Загружаюсь с liveCD настраиваю ip на сервере, но не загружается веб интерфейс. Даже пинга нет! Подсети одинаковые 255.255.252.0, ip сервера...

Мои сервера сломали (и сейчас они денег требует) как очистить сервера? - Удаление вирусов
Вчера мои сервер стала жертва вымогателей после этого сейчас сервер не заходит с никакой учётные запись кроме Administrator такие ошибки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.05.2016, 19:13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru