powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++Builder и пакеты bpl
4 сообщений из 4, страница 1 из 1
C++Builder и пакеты bpl
    #32185102
as361
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый.

Исходные данные:
Инструмент - C++Builder 5,0.
Создан пакет (.bpl), содержащий несколько форм (классов).

Со статической линковкой и RunTime загрузкой (когда пакет прописан в строке Build with runtime packages) вроде бы разобрались.
Теперь хотелось бы загрузить пакет явным образом т.е. примерно так, как это делается для "обычных" DLL. В TFM (от RTFM :) ) нашли ф-ции LoadPackage (аналог LoadLibrary) и UnloadPackage (соответсвенно - FreeLibrary). Теперь вопрос - как теперь получить доступ к классам и объектам из этого пакета, как создать экземпляр класса объявленного в пакете ? вот.
Спасибо.
...
Рейтинг: 0 / 0
C++Builder и пакеты bpl
    #32185642
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
COM ?
...
Рейтинг: 0 / 0
C++Builder и пакеты bpl
    #32185848
as361
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А при чем здесь 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;
...
Рейтинг: 0 / 0
C++Builder и пакеты bpl
    #32185856
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коечно длжен быть ...

ActiveForm:=(TComponentClass(FormClass).create(Application)) as TCustomForm;

ну приблезительно

ActiveForm = dynamic_cast(&TComponentClass(FormClass).create(Application)))(TCustomForm)

может быть так но могу и ошибится

вообщем если тебя смущает только AS то на билдере альтернатива dynamic_cast
можешь прочитать в хелпе ...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++Builder и пакеты bpl
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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