Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Повторное использование компонентов


Автор: kdaemonv 11.7.2008, 13:38
Можно ли, и как, если можно, вытянуть из exe файла самописный компонент, чтобы можно было его повторно использовать?

Автор: Snowy 11.7.2008, 14:09
Никак

Автор: mr.Anderson 11.7.2008, 14:10
Никак нельзя, скорее всего. Нужны сорцы компонента, их нигде не достанешь, если они не идут с программой. Нет исходников - нет кода компонента.

Добавлено через 34 секунды
Ыть опять опоздал. Да что ж такое...

Автор: Alexeis 11.7.2008, 14:43
  В бинарном коде нет не только компонентов, но даже простых классов. Максимум выдрать функцию и то прийдеться пошаманить чтобы она заработала.

Автор: deswars 14.7.2008, 09:42
Классы можна та найти, так как они отличаются от обычных переменных, о ты попробуй найти именно то что ищеш.

Автор: Alexeis 14.7.2008, 09:53
deswars, классов не существует в экзешнике. Можно найти RTTI, структуру метакласса. Думаю, что там нет даже VMT. Все объекты в Delphi создаются в куче, в Run Time, потому их просто не может быть в экзешнике. Это не С++.

Автор: deswars 14.7.2008, 10:07
Я хотел сказать, что можна найти, где были классы.

Автор: Alexeis 14.7.2008, 10:15
Цитата(deswars @  14.7.2008,  09:07 Найти цитируемый пост)
Я хотел сказать, что можна найти, где были классы. 

  В Run Time что ли? Найти созданный объект среди дампа кучи?

Добавлено через 1 минуту и 44 секунды
  Что именно от класса остается в экзешнике?

Автор: bems 14.7.2008, 18:10
Цитата(Alexeis @  14.7.2008,  09:53 Найти цитируемый пост)
Думаю, что там нет даже VMT
как это возможно?

Автор: Alexeis 14.7.2008, 20:40
Цитата(bems @  14.7.2008,  17:10 Найти цитируемый пост)
как это возможно?

  А почему бы и нет? Для ее создания нужно знать точки входа в нужные функции, а саму VMT создать динамически в куче, при инициализации программы.

Автор: deswars 15.7.2008, 08:58
Цитата(Alexeis @ 14.7.2008,  10:15)
 
  Что именно от класса остается в экзешнике?

Что-то, что позволяет динамически определять класс, на который ссылается указатель( по-моему создается таблица в памяти).

Автор: bems 15.7.2008, 16:38
Цитата(Alexeis @  14.7.2008,  20:40 Найти цитируемый пост)
 А почему бы и нет? Для ее создания нужно знать точки входа в нужные функции, а саму VMT создать динамически в куче, при инициализации программы. 
точки входа в нужные функции это и есть VMT

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)