Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74

Как из компонента ActiveX вернуть указатель на структуру или класс

26.02.2014, 14:43. Показов 917. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый! Есть такая проблема: не получается вернуть из компонента ActiveX вернуть указатель на структуру. Информации по этому поводу в интернете очень мало, поэтому решил обратиться сюда. Я пробовал сделать это с помощью создания методов Set/Get но ку меня ничего не получилось. Если кто то такое уже проворачивал - поделитесь опытом! Буду очень признателен!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2014, 14:43
Ответы с готовыми решениями:

Вернуть указатель на структуру
Здравствуйте. Пытаюсь вернуть указатель на свою структуру, но при компиляции выдаёт ошибку, абсолютно не понимаю, что его не...

Как скопировать структуру или сменить указатель новой переменной на ее адрес
Здравствуйте! У меня есть структура вида: type Struct_inside a as long b as long end type type Struct_main

ActiveX Bridje или как превращать ActiveX Control в JavaBean.
Насколько я понял из документации, эта штука позволяет превращать JavaBean в ActiveX Control с дальнейшим использованием этого дела в...

4
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
26.02.2014, 15:30
Ну хорошо, предположим, вернешь ты из ActiveX указатель на структуру или класс. Любой.

Контрольный вопрос (в голову ) : как ты собираешься применять этот ActiveX в языках, в которых отсутствует вообще понятие "указателя"? или отсутствует понятие "класса"? А ведь весь смысл технологии (и ActiveX в частности) в том, чтобы компонент, написанный на одном языке, можно было применить в проекте, написанном на совершенно другом языке....

Именно поэтому нужно играть по всем правилам ActiveX/COM/DCOM.....

Или же ты собираешься применять свой компонент только на одном языке (конкретно - C++) и только в одном компиляторе (конкретно - в том, который установлен у тебя)? Тогда - зачем такие сложности?
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
26.02.2014, 16:29  [ТС]
Я собираюсь использовать свой компонент только в одном языке) Это уж точно) Мне нужно передать указатель на структуру в которую загружается BMP файл. Суть такого решения в том что несколько программ будут использовать один компонент ActiveX, дабы не поедать память. Но вот как передать указатель для проблема.
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
26.02.2014, 16:47
"дабы не поедать память" - гнилая отмазка. Ага, вот так, без политесов и прочих толерантностей.
Во-первых, в Win у каждой программы - свое собственное адресное пространство, размером 4 Гб. А уж сколько там будет программе выделено физической памяти, а сколько будет вытеснено на диск - это решает не программа, а система - менеджер памяти Win. Во-вторых, отчего-то мне кажется, что сами данные - та BMP картинка - отъедят памяти сильно больше, чем код. А если несколько программ будут грузить разные картинки, то уж сумма памяти, потребленной на данные, будет шибко больше, чем память, занятая исполняемым кодом компонента. Хинт: система сама сделает разделяемые read-only страницы физической памяти с кодом компонента, и расшарит их между приложениями.
Подробности управления памятью хорошо описаны у мэтра Рихтера в его "Windows для профессионалов", либо у Руссиновича и Соломона во "Внутреннем устройстве MS Windows".

В общем, в такой постановке мне лично затея с ActiveX представляется "из пушки по воробьям". Но не настаиваю, конечно, решать тебе.....
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
27.02.2014, 10:54  [ТС]
Суть такого решения заключается в том что будет создан только ОДИН компонент ActiveX с загруженными в него BMP а 20 - 30 программ будут этими BMP пользоваться. Мне даже не очень опытному понятно что лучше использовать один компонент ActiveX с файлами чем загружать в каждом программе BMP коих там по 30 -50 штук. Я просто не понимаю Вас. Я вроде задал конкретный вопрос знаете - подскажите, нет так зачем начинать поиски дураков?! Это все равно что спросил бы "Как резать картошку для борща?" а вы мне "Зачем тебе борщ? Это не целесообразно! Лучше приготовь крокодилов фаршированных верблюдами!"

Добавлено через 17 часов 46 минут
Вопрос решился. Отпишу как, наверняка кому то пригодится:
C++
1
2
3
4
5
6
7
8
LONG CZetIntSourceCtrl::GetMainImagePointer(LONG* str, LONG xz)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
 
    // TODO: Add your dispatch handler code here
 
    return (LONG)m_pmain_Gltexture;
}
функция get должна возвращать тип LONG
где m_pmain_Gltexture - объект структуры AUX_RGBImageRec.
Тип объекта может быть любым.
В программе контейнере принимаем указатель на объект следующим образом:
image = (AUX_RGBImageRec*)ZetInterfaceSource.get _MainImagePointer(&a, 0);
ZetInterfaceSource - объект ActiveX.
image - указатель на объект типа AUX_RGBImageRec.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2014, 10:54
Помогаю со студенческими работами здесь

Может ли функция вернуть массив или структуру?
Столкнулся с такой проблемой, не могу возвращать список значений из функции. Если есть какие-то методы, буду признателен за помощь.

Как получить ссылку на указатель или указатель на указатель в массиве?
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

Как вывести на екран структуру/класс через vector или list
Всем привет.Подскажите как через итераторы правильно вывести структуру или класс в поток. Как я понял для стандартных типов они выводятся...

Как исправить ошибку: Выражение должно представлять класс, структуру или объединение
Здравствуйте уважаемые! Пишу сортировку массива структур, содержащего данные аудио коллекции. Никак не могу понять как исправить ошибку...

ActiveX как установить 2 компонента одновременно
Такая проблема добавляю в delphi 7 компонент ActiveX AcroPDF. Исчезает ActiveX WindowsMediaPlayer. Заново добавляю ActiveX...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru