Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
C++Builder и пакеты bpl
|
|||
|---|---|---|---|
|
#18+
День добрый. Исходные данные: Инструмент - C++Builder 5,0. Создан пакет (.bpl), содержащий несколько форм (классов). Со статической линковкой и RunTime загрузкой (когда пакет прописан в строке Build with runtime packages) вроде бы разобрались. Теперь хотелось бы загрузить пакет явным образом т.е. примерно так, как это делается для "обычных" DLL. В TFM (от RTFM :) ) нашли ф-ции LoadPackage (аналог LoadLibrary) и UnloadPackage (соответсвенно - FreeLibrary). Теперь вопрос - как теперь получить доступ к классам и объектам из этого пакета, как создать экземпляр класса объявленного в пакете ? вот. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 11:14 |
|
||
|
C++Builder и пакеты bpl
|
|||
|---|---|---|---|
|
#18+
А при чем здесь COM ? - нет не COM. Есть пакет (bpl) с некоторым набором форм. Задача: загрузить его и показать эти формы на экране - вот и все. С помощью LoadPackage() загружам пакет. С помощью GetClass() и FindClass() получаем указатели на зарегистрированные в пакете классы форм. Вот, а что потом делать с этими указателями - не понятно. А хотелось бы создать экземпляр данного класса, ну и, естественно, пользовать потом его методы. В Delphi это делается примерно так: Handle:=LoadPackage('Package.bpl') ; FormClass:=Findclass('TForm1'); ActiveForm:=(TComponentClass(FormClass).create(Application)) as TCustomForm; activeform.showModal; activeform.Free; UnloadPackage(Handle); Есть ли аналог в Builder'e вот для такой конструкции ? ActiveForm:=(TComponentClass(FormClass).create(Application)) as TCustomForm; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 17:37 |
|
||
|
C++Builder и пакеты bpl
|
|||
|---|---|---|---|
|
#18+
Коечно длжен быть ... ActiveForm:=(TComponentClass(FormClass).create(Application)) as TCustomForm; ну приблезительно ActiveForm = dynamic_cast(&TComponentClass(FormClass).create(Application)))(TCustomForm) может быть так но могу и ошибится вообщем если тебя смущает только AS то на билдере альтернатива dynamic_cast можешь прочитать в хелпе ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 17:43 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=479&tid=2036250]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 274ms |
| total: | 396ms |

| 0 / 0 |
