![]() |
|
![]() ![]() ![]() |
|
retto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 30.10.2007 Где: Кривой Рог, Украи на Репутация: нет Всего: нет |
Есть класс MyClass, в нем есть два свойства int First, int Second. Есть экземпляр класса myClass, возможно ли добраться до свойства класса зная его имя? то-есть есть имя свойства char* propertyName = "First" и необходимо получить значение этого свойства. где-то так...
|
|||
|
||||
SickFxck |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: нет Всего: 1 |
Нет, нельзя. На момент выполнения программы нет никаких имён классов/переменных/методов.
Это сообщение отредактировал(а) SickFxck - 19.4.2010, 19:36 |
|||
|
||||
retto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 30.10.2007 Где: Кривой Рог, Украи на Репутация: нет Всего: нет |
SickFxck, да ладно, object inspector жешь добирается к свойствам класса и их значениям
|
|||
|
||||
SickFxck |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: нет Всего: 1 |
retto, значит твой object inspector хранит какую-то связь между твоим исходным кодом и выполняемой программой, т.е. он, грубо говоря, ставит в соответствие объект в коде адресу этого объекта в памяти. В скомпилированной программе уже нет никаких имён, там только некие адреса.
Это сообщение отредактировал(а) SickFxck - 19.4.2010, 19:45 |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Object inspector берет эту информацию из DFM файлов, и не в Run-Time а Design-Time. Добавлено через 39 секунд расскажи о задаче подробнее, можно подумать над решением с шаблонами во время компиляции. Добавлено через 1 минуту и 38 секунд хотя сомневаюсь, что в билдере можно что-то нормальное написать на шаблонах, все равно нормально не поддерживает..разве что последняя версия. |
|||
|
||||
retto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 30.10.2007 Где: Кривой Рог, Украи на Репутация: нет Всего: нет |
||||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Ну есть какое то лимитированное подобие..
http://www.garret.ru/cppreflection/docs/re...ml#architecture но я бы не не стал так извращаться. |
|||
|
||||
retto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 30.10.2007 Где: Кривой Рог, Украи на Репутация: нет Всего: нет |
уж как-то обойдусь без этого ) |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
В С++ reflection нет, но в Borland'овской версии С++ есть расширенный RTTI. Если твои проперти находятся в __published секции, то добраться можно. Формат этой информации в доках не описан, и меняется от версии к версии. Но есть хидер TypInfo.hpp, копай в этом направлении
|
|||
|
||||
retto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 30.10.2007 Где: Кривой Рог, Украи на Репутация: нет Всего: нет |
копал, есть PPropInfo - можно вытащить данные о свойстве, но не его значение. что доставать свойства необходимо чтобы класс был унаследован как минимум от TObject. Для пользовательских же классов данное PPropInfo не применимо Это сообщение отредактировал(а) retto - 20.4.2010, 14:00 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |