powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Reflection
33 сообщений из 33, показаны все 2 страниц
Reflection
    #34531560
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существуют ли библиотека для плюсов чтоб динамически получить описание методов а по возможности и делать их вызов.
P.S.
Наскока я понимаю идентифиировать класс можно с помощью RTTI.
Возможно есть тулзы которые скомпилят C++ файлы в какойнить файл(XML) или конечный код работающий работающий с объектами.
...
Рейтинг: 0 / 0
Reflection
    #34531613
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stub wrote:
> Автор: "Stub"
> Существуют ли библиотека для плюсов чтоб динамически получить описание
> методов а по возможности и делать их вызов.

А какую задачу вы будет решать имей вы такую возможность в С++? С++
строго типизированный язык, если вам необходимо гибкость, но эта
гибкость иного рода - вы можете описать все необходимые вам интерфейсы,
а далее у объекта запрашивать поддерживает ли он тот или иной интерфейс.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Reflection
    #34531641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Комсомольцу надо обратить свой взор на COM-технологию.
...
Рейтинг: 0 / 0
Reflection
    #34531670
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да забыл сказать C++.NET и COM не предлагать
...
Рейтинг: 0 / 0
Reflection
    #34531724
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StubАх да забыл сказать C++.NETну, рефлекшн.
...
Рейтинг: 0 / 0
Reflection
    #34531779
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй посмотреть axis for с++
...
Рейтинг: 0 / 0
Reflection
    #34531791
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedПопробуй посмотреть axis for с++
От apache?
...
Рейтинг: 0 / 0
Reflection
    #34531859
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да у apache. Еще есть systinet но он платный. Я так понимаю нужно что-то для сериализациию Вопрос в какой вид сериализовать.
...
Рейтинг: 0 / 0
Reflection
    #34531985
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
та я не совсем осериализация. Если она есть то не помещает об отражении(reflection).
...
Рейтинг: 0 / 0
Reflection
    #34531989
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Динамическое(Runtime) описание типов.
...
Рейтинг: 0 / 0
Reflection
    #34532055
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так его в С++ нет и не будет...
...
Рейтинг: 0 / 0
Reflection
    #34532146
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего так?
Мог же кто нить компилятор написать, который паралельно основному будет собирать инфу о объектах или в этом какието сложности?
...
Рейтинг: 0 / 0
Reflection
    #34532251
Чего так?
Мог же кто нить компилятор написать, который паралельно основному будет собирать инфу о объектах или в этом какието сложности?


ну напишите препроцессор который по некому описаню генерит код интерфейса + метаинформацию, да и наследуйте его на здоровье

велосипед должен быть изобретен!

а если серьезно, присоединяюсь к реплике Анатолия Широкова
...
Рейтинг: 0 / 0
Reflection
    #34532284
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С++ компиллер может нести минимальный набор RTTI информации об объекте, который позволяет хотя-бы проверить корректность downcast - операций. Большее и не нужно. Если вы хотите, что выступить с предложением внести динамическое описание методов это в стандарт - давайте создадим новый тред, и обсудим НЕОБХОДИМОСТЬ и ПОЛЕЗНОСТЬ данного новшества. Я даже в этом поучавствую. Но предупреждаю, что профессионалы С++ вас не будут особо сильно поддерживать. Поэтому приготовьте хорошие аргументы (все, кроме фраз "а мне так удобно" или "почему-бы не сделать, ведь это легко"). Погуглите в инете начсёт боянов. Возможно подобные попытки уже где-то существовали. Лично я уверен, что есть десяток нативных компиллеров, поддерживающих разные режимы рефлексии. Поищите альтернативу С++. Щас их полно. Хотя... с вашей любовью к роскошным средам разработки, такой шаг будет сделать, наверное сложновато.
...
Рейтинг: 0 / 0
Reflection
    #34532285
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широков
Stub wrote:
> Автор: "Stub"
> Существуют ли библиотека для плюсов чтоб динамически получить описание
> методов а по возможности и делать их вызов.

А какую задачу вы будет решать имей вы такую возможность в С++? С++
строго типизированный язык, если вам необходимо гибкость, но эта
гибкость иного рода - вы можете описать все необходимые вам интерфейсы,
а далее у объекта запрашивать поддерживает ли он тот или иной интерфейс.
Posted via ActualForum NNTP Server 1.4

Remote Method Invocation
...
Рейтинг: 0 / 0
Reflection
    #34532306
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю не создавать ветки и не распыляться на болтовню. Пусть отправляется сразу на comp.lang.c++ там ему все объяснят
...
Рейтинг: 0 / 0
Reflection
    #34532351
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А какую задачу вы будет решать имей вы такую возможность в С++? С++
> строго типизированный язык, если вам необходимо гибкость, но эта
> гибкость иного рода - вы можете описать все необходимые вам интерфейсы,
> а далее у объекта запрашивать поддерживает ли он тот или иной интерфейс.
>
> Remote Method Invocation

CORBA имеет свой генератор proxy для клиентов и stub-ов для сервера.
Если вы будете использовать RPC, то есть генераторы с IDL, которые
генерируют proxy/stub. Вообщем, вам надо обратится к документации по
конкретной, используемой вами, технологии. Все уже есть.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Reflection
    #34532398
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати в корбе есть и dii, так что все украдено до нас
...
Рейтинг: 0 / 0
Reflection
    #34532829
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StubЧего так?
Мог же кто нить компилятор написать, который паралельно основному будет собирать инфу о объектах или в этом какието сложности?
Блин. Возможно кто то же смог написать компилятор, который паралельно основному будет собирает инфу об объектах?
...
Рейтинг: 0 / 0
Reflection
    #34532832
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry за неправильную постановку фразы.
...
Рейтинг: 0 / 0
Reflection
    #34532875
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широков
> А какую задачу вы будет решать имей вы такую возможность в С++? С++
> строго типизированный язык, если вам необходимо гибкость, но эта
> гибкость иного рода - вы можете описать все необходимые вам интерфейсы,
> а далее у объекта запрашивать поддерживает ли он тот или иной интерфейс.
>
> Remote Method Invocation

CORBA имеет свой генератор proxy для клиентов и stub-ов для сервера.
Если вы будете использовать RPC, то есть генераторы с IDL, которые
генерируют proxy/stub. Вообщем, вам надо обратится к документации по
конкретной, используемой вами, технологии. Все уже есть.
Posted via ActualForum NNTP Server 1.4

Тоесть педалим IDL дальше на основе IDL генериться cpp/h, дальше реализовуем?
В таком случае.
Здорово напоминает ActiveX тока кроссплатформеная.
Очень много неудобсвт.
-Начиная от того что архитектура проэкта изначальня не предусматривала. А также работа с 3rd party библиотеками.
- Если мы меням интерфейс класса, нам надо переделывать и сам IDL надо менять.

необходимо много делать бесполезных движений. Опять тот же CPP(Copy and Past programming).
ХМ. Может есть средства которые по исходному коду генерят IDL+классы которые инкапсулируют исходные классы.
...
Рейтинг: 0 / 0
Reflection
    #34532928
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты думаешь, .нет зачем делали?
...
Рейтинг: 0 / 0
Reflection
    #34532940
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StubБлин. Возможно кто то же смог написать компилятор, который паралельно основному будет собирает инфу об объектах?я знаю такой компилятор. csc.exe и будет тебе рефлекшн, и будет тебе мета-информация, и будет тебе ремотинг, и будет тебе автоматическая генерация wsdl-описания, и будет тебе автоматическая генерация прокси, и будет тебе счастье
...
Рейтинг: 0 / 0
Reflection
    #34532958
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чем тебе javac не угодил
...
Рейтинг: 0 / 0
Reflection
    #34532972
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
альтернативы – жаба, .гну, моно
...
Рейтинг: 0 / 0
Reflection
    #34532975
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stub
Тоесть педалим IDL дальше на основе IDL генериться cpp/h, дальше реализовуем?
В таком случае.
Здорово напоминает ActiveX тока кроссплатформеная.
[/qout]
Это еще кто кого напоминает
[quot Stub]
Очень много неудобсвт.
-Начиная от того что архитектура проэкта изначальня не предусматривала. А также работа с 3rd party библиотеками.

Вы видимо плохо представляете себе распределеное программирование. В сеть вытаскиваетет один или несколько интерфейсов - фасадов. Никого как правило детали их реализации не интересуют. Если же вы будете писать сетевое приложение как обычное, т е с большм количеством мелкогранулированных объетов у ва сничего не выйдет, из-за высокой импедантности сетки
Stub

- Если мы меням интерфейс класса, нам надо переделывать и сам IDL надо менять.

Не не так вы меняетте инерфейс класса - у вас перегенерируется stub, а вы должны будете подсунуть ему новую реализацию
Stub
необходимо много делать бесполезных движений. Опять тот же CPP(Copy and Past programming).

Ну зачем копировать, можно делегированием обойтись
Stub
ХМ. Может есть средства которые по исходному коду генерят IDL+классы которые инкапсулируют исходные классы.
Однозначно нет, в IDL ничего не знает о множественном наследовании и тем более шаблонах...
...
Рейтинг: 0 / 0
Reflection
    #34533988
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded
Stub
Очень много неудобсвт.
-Начиная от того что архитектура проэкта изначальня не предусматривала. А также работа с 3rd party библиотеками.

Вы видимо плохо представляете себе распределеное программирование. В сеть вытаскиваетет один или несколько интерфейсов - фасадов. Никого как правило детали их реализации не интересуют. Если же вы будете писать сетевое приложение как обычное, т е с большм количеством мелкогранулированных объетов у ва сничего не выйдет, из-за высокой импедантности сетки
Stub

Думаю нормальная задача передать list<string>. Наскоко я понимаю надо напедалить IDL для List. Дальше сгенерить stub. И инкапсулировать в stub list<string>.

blinded
Stub
- Если мы меням интерфейс класса, нам надо переделывать и сам IDL надо менять.

Не не так вы меняетте инерфейс класса - у вас перегенерируется stub, а вы должны будете подсунуть ему новую реализацию

Все на самом деле сложнее чем оно есть. И неудобнее.

blinded
Stub
необходимо много делать бесполезных движений. Опять тот же CPP(Copy and Past programming).

Ну зачем копировать, можно делегированием обойтись

Я вобще об изменениях в интерфейсе. Как сдесь спомощью делегирования выкрутиться я не совсем понимаю.
Это интерфейс изменяться на стадии проэктирования, если не совсем меня понятно.

Думаю не стоит сравнивать
преймущества
IDL->definition->implement
и
definition/implement->IDL->incapsulate(implement)

Stub
ХМ. Может есть средства которые по исходному коду генерят IDL+классы которые инкапсулируют исходные классы.
Однозначно нет, в IDL ничего не знает о множественном наследовании и тем более шаблонах...
Инкапсуляцие IDL должен поддерживать. Это уже специфика реализации скорее чем описания класс.
А наследование можно и инкапсуляцией сделать.
...
Рейтинг: 0 / 0
Reflection
    #34534080
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stub blinded
Stub
Очень много неудобсвт.
-Начиная от того что архитектура проэкта изначальня не предусматривала. А также работа с 3rd party библиотеками.

Вы видимо плохо представляете себе распределеное программирование. В сеть вытаскиваетет один или несколько интерфейсов - фасадов. Никого как правило детали их реализации не интересуют. Если же вы будете писать сетевое приложение как обычное, т е с большм количеством мелкогранулированных объетов у ва сничего не выйдет, из-за высокой импедантности сетки


Думаю нормальная задача передать list<string>. Наскоко я понимаю надо напедалить IDL для List. Дальше сгенерить stub. И инкапсулировать в stub list<string>.

Ненормальноая Ни list ни string, передать не получится...
1) Разные платформы бинарно не совместимы
2) IDL предполагает ренерацию интерфейсов для множества я зыков, в том числе С
Это как с вебсервисами как только вы попадаете в гетерогенную среду забудьте о сложных типах - только базовые, структуры базовых и массивы - остальное в топку
Вывод - массив строк (char*)
Stub
blinded
Stub
- Если мы меням интерфейс класса, нам надо переделывать и сам IDL надо менять.

Не не так вы меняетте инерфейс класса - у вас перегенерируется stub, а вы должны будете подсунуть ему новую реализацию

Все на самом деле сложнее чем оно есть. И неудобнее.

Извините это не жаба с ее байт кодом, где объекты по сетке можно таскать

Stub
blinded
Stub
необходимо много делать бесполезных движений. Опять тот же CPP(Copy and Past programming).

Ну зачем копировать, можно делегированием обойтись

Я вобще об изменениях в интерфейсе. Как сдесь спомощью делегирования выкрутиться я не совсем понимаю.
Это интерфейс изменяться на стадии проэктирования, если не совсем меня понятно.

Думаю не стоит сравнивать
преймущества
IDL->definition->implement
и
definition/implement->IDL->incapsulate(implement)

Ну это примерно как веь-сервисы программировать, таже бодяга.
Stub
Stub
ХМ. Может есть средства которые по исходному коду генерят IDL+классы которые инкапсулируют исходные классы.
blinded
Однозначно нет, в IDL ничего не знает о множественном наследовании и тем более шаблонах...
Инкапсуляцие IDL должен поддерживать. Это уже специфика реализации скорее чем описания класс.
А наследование можно и инкапсуляцией сделать.
...
Рейтинг: 0 / 0
Reflection
    #34534082
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу на эти вложенные цитаты. Забыл дописать
Ежели хочешь книжку пришлю Advanced Corba Programming wth C++. Тебе совсем разонравится
...
Рейтинг: 0 / 0
Reflection
    #34534798
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Счас эту книжку погуглим.
...
Рейтинг: 0 / 0
Reflection
    #34535987
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
корба, вроде, сложнее веб-сервисов, навороченнее.
...
Рейтинг: 0 / 0
Reflection
    #34537597
Gryz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще можно использовать библиотеку Qt.
Ограничение: вызывать по имени можно только методы классов, отнаследованных от QObject.
...
Рейтинг: 0 / 0
Reflection
    #34539784
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это тот же IDispatch, вид сбоку
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Reflection
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]