Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Направления программирования
>
Техно
> Тема:
аналог theApp в ActiveX
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: аналог theApp в ActiveX (Прочитано 38337 раз)
0 Пользователей и 1 Гость смотрят эту тему.
yudjin
Помогающий
Offline
Пол:
аналог theApp в ActiveX
«
:
28-05-2010 07:50 »
Как получить доступ к главному объекту ActiveX (или как он завется?) из других классов? В оконных приложениях было че-то вроде глобальной переменной theApp. Есть мысля - создать статический метод, возвращающий указатель на уже рабочий "себя", но она не очень нравиться
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: аналог theApp в ActiveX
«
Ответ #1 :
29-05-2010 10:15 »
yudjin
, что ыт называешь "главным объектом"?
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
yudjin
Помогающий
Offline
Пол:
Re: аналог theApp в ActiveX
«
Ответ #2 :
31-05-2010 06:52 »
Эмм... Как бы так объяснить. В общем, сначала я писал и тестил "проект" на MFC (мне так было проще - параллельно знакомился с С++), и в ряде случаев я использовал глобальную переменную theApp, так как в этом классе были нити на другие классы. Если кароче - из какого-то класса с помощью theApp я мог достучаться до любого другого объекта.
Сейчас переношу логику на ActiveX-компоненту, и возникли трудности. Возможно, мой подход не верен изначально, но как тогда из пользовательского класса получить доступ к, скажем, документу или вьюхе? Если такой подход приемлем - то как тогда из пользовательского класса получить доступ к ATL Control'у? Заводить в пользовательском классе поле для хранения в нем указателя на компоненту - мне кажется, это плохой вариант.
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: аналог theApp в ActiveX
«
Ответ #3 :
31-05-2010 13:21 »
Твоя COM-программа ничего не знает о программе, которая будет ее использовать. Как ты будешь ею управлять?
Нужно чтобы программа, создающая COM-объект, передала твоей программе указатель на некий искомый объект внутри себя. И при сборке твоя программ и та должны использовать одни и те же (той же версии) заголовочные файлы.
Не мешает знать, что COM-программы бывают внутри- и внепроцессными (отдельный процесс, который может даже быть на другом хосте). Во втором случае точно никак нельзя. В первом случае - основная программа должна как-то поделиться указателем на нужный тебе объект.
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
yudjin
Помогающий
Offline
Пол:
Re: аналог theApp в ActiveX
«
Ответ #4 :
01-06-2010 05:48 »
не-не-не, немного не так... Моя COM-программа не будет управлять приложением, ее вызывающим.
Вот мой сценарий:
Создал АТЛ проект;
Добавил класс АТЛ-контрол (визуальная компонента, далее ВК);
Добавил еще кучу пользовательских классов;
ВК создает объекты независимых классов А,Б,Ц;
Как объекту А обратиться к объекту Б? В МФС проекте объект А обращался к theApp (там хранятся основные указатели), отдута обращался к документу, запрашивал нужную вьюху, хранящую объект Б, и уже потом работал с объектом Б... Как-то так. Т.е. в приведенном выше сценарии через глобальную переменную theApp можно было выйти на созданные объекты и с ними работать.
Что же происходит у меня при создании ActiveX:
в ВК я создаю объекты независимых классов А,Б,Ц;
Как объекту А выйти на объект Б?
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Направления программирования
>
Техно
> Тема:
аналог theApp в ActiveX
Загружается...