|
|
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Существуют ли библиотека для плюсов чтоб динамически получить описание методов а по возможности и делать их вызов. P.S. Наскока я понимаю идентифиировать класс можно с помощью RTTI. Возможно есть тулзы которые скомпилят C++ файлы в какойнить файл(XML) или конечный код работающий работающий с объектами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 11:07 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Stub wrote: > Автор: "Stub" > Существуют ли библиотека для плюсов чтоб динамически получить описание > методов а по возможности и делать их вызов. А какую задачу вы будет решать имей вы такую возможность в С++? С++ строго типизированный язык, если вам необходимо гибкость, но эта гибкость иного рода - вы можете описать все необходимые вам интерфейсы, а далее у объекта запрашивать поддерживает ли он тот или иной интерфейс. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 11:15 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Комсомольцу надо обратить свой взор на COM-технологию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 11:21 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Ах да забыл сказать C++.NET и COM не предлагать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 11:28 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
StubАх да забыл сказать C++.NETну, рефлекшн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 11:37 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Попробуй посмотреть axis for с++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 11:46 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
blindedПопробуй посмотреть axis for с++ От apache? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 11:48 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Да у apache. Еще есть systinet но он платный. Я так понимаю нужно что-то для сериализациию Вопрос в какой вид сериализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 12:00 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
та я не совсем осериализация. Если она есть то не помещает об отражении(reflection). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 12:22 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Динамическое(Runtime) описание типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 12:23 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Так его в С++ нет и не будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 12:35 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Чего так? Мог же кто нить компилятор написать, который паралельно основному будет собирать инфу о объектах или в этом какието сложности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 12:51 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Чего так? Мог же кто нить компилятор написать, который паралельно основному будет собирать инфу о объектах или в этом какието сложности? ну напишите препроцессор который по некому описаню генерит код интерфейса + метаинформацию, да и наследуйте его на здоровье велосипед должен быть изобретен! а если серьезно, присоединяюсь к реплике Анатолия Широкова ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 13:11 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
С++ компиллер может нести минимальный набор RTTI информации об объекте, который позволяет хотя-бы проверить корректность downcast - операций. Большее и не нужно. Если вы хотите, что выступить с предложением внести динамическое описание методов это в стандарт - давайте создадим новый тред, и обсудим НЕОБХОДИМОСТЬ и ПОЛЕЗНОСТЬ данного новшества. Я даже в этом поучавствую. Но предупреждаю, что профессионалы С++ вас не будут особо сильно поддерживать. Поэтому приготовьте хорошие аргументы (все, кроме фраз "а мне так удобно" или "почему-бы не сделать, ведь это легко"). Погуглите в инете начсёт боянов. Возможно подобные попытки уже где-то существовали. Лично я уверен, что есть десяток нативных компиллеров, поддерживающих разные режимы рефлексии. Поищите альтернативу С++. Щас их полно. Хотя... с вашей любовью к роскошным средам разработки, такой шаг будет сделать, наверное сложновато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 13:20 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков Stub wrote: > Автор: "Stub" > Существуют ли библиотека для плюсов чтоб динамически получить описание > методов а по возможности и делать их вызов. А какую задачу вы будет решать имей вы такую возможность в С++? С++ строго типизированный язык, если вам необходимо гибкость, но эта гибкость иного рода - вы можете описать все необходимые вам интерфейсы, а далее у объекта запрашивать поддерживает ли он тот или иной интерфейс. Posted via ActualForum NNTP Server 1.4 Remote Method Invocation ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 13:21 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Предлагаю не создавать ветки и не распыляться на болтовню. Пусть отправляется сразу на comp.lang.c++ там ему все объяснят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 13:24 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
> А какую задачу вы будет решать имей вы такую возможность в С++? С++ > строго типизированный язык, если вам необходимо гибкость, но эта > гибкость иного рода - вы можете описать все необходимые вам интерфейсы, > а далее у объекта запрашивать поддерживает ли он тот или иной интерфейс. > > Remote Method Invocation CORBA имеет свой генератор proxy для клиентов и stub-ов для сервера. Если вы будете использовать RPC, то есть генераторы с IDL, которые генерируют proxy/stub. Вообщем, вам надо обратится к документации по конкретной, используемой вами, технологии. Все уже есть. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 13:30 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Кстати в корбе есть и dii, так что все украдено до нас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 13:40 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
StubЧего так? Мог же кто нить компилятор написать, который паралельно основному будет собирать инфу о объектах или в этом какието сложности? Блин. Возможно кто то же смог написать компилятор, который паралельно основному будет собирает инфу об объектах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:03 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Sorry за неправильную постановку фразы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:04 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков > А какую задачу вы будет решать имей вы такую возможность в С++? С++ > строго типизированный язык, если вам необходимо гибкость, но эта > гибкость иного рода - вы можете описать все необходимые вам интерфейсы, > а далее у объекта запрашивать поддерживает ли он тот или иной интерфейс. > > 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+классы которые инкапсулируют исходные классы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:12 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
а ты думаешь, .нет зачем делали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:25 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
StubБлин. Возможно кто то же смог написать компилятор, который паралельно основному будет собирает инфу об объектах?я знаю такой компилятор. csc.exe и будет тебе рефлекшн, и будет тебе мета-информация, и будет тебе ремотинг, и будет тебе автоматическая генерация wsdl-описания, и будет тебе автоматическая генерация прокси, и будет тебе счастье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:29 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
чем тебе javac не угодил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:32 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
альтернативы – жаба, .гну, моно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:36 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Stub Тоесть педалим IDL дальше на основе IDL генериться cpp/h, дальше реализовуем? В таком случае. Здорово напоминает ActiveX тока кроссплатформеная. [/qout] Это еще кто кого напоминает [quot Stub] Очень много неудобсвт. -Начиная от того что архитектура проэкта изначальня не предусматривала. А также работа с 3rd party библиотеками. Вы видимо плохо представляете себе распределеное программирование. В сеть вытаскиваетет один или несколько интерфейсов - фасадов. Никого как правило детали их реализации не интересуют. Если же вы будете писать сетевое приложение как обычное, т е с большм количеством мелкогранулированных объетов у ва сничего не выйдет, из-за высокой импедантности сетки Stub - Если мы меням интерфейс класса, нам надо переделывать и сам IDL надо менять. Не не так вы меняетте инерфейс класса - у вас перегенерируется stub, а вы должны будете подсунуть ему новую реализацию Stub необходимо много делать бесполезных движений. Опять тот же CPP(Copy and Past programming). Ну зачем копировать, можно делегированием обойтись Stub ХМ. Может есть средства которые по исходному коду генерят IDL+классы которые инкапсулируют исходные классы. Однозначно нет, в IDL ничего не знает о множественном наследовании и тем более шаблонах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:37 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
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 должен поддерживать. Это уже специфика реализации скорее чем описания класс. А наследование можно и инкапсуляцией сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 21:19 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
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 должен поддерживать. Это уже специфика реализации скорее чем описания класс. А наследование можно и инкапсуляцией сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 22:09 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Тьфу на эти вложенные цитаты. Забыл дописать Ежели хочешь книжку пришлю Advanced Corba Programming wth C++. Тебе совсем разонравится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 22:12 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Счас эту книжку погуглим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 10:53 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
корба, вроде, сложнее веб-сервисов, навороченнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 15:03 |
|
||
|
Reflection
|
|||
|---|---|---|---|
|
#18+
Еще можно использовать библиотеку Qt. Ограничение: вызывать по имени можно только методы классов, отнаследованных от QObject. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2007, 17:27 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2028839]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 509ms |

| 0 / 0 |
