У меня класс в отряде. Обычно, когда я меняю алгоритм его методов, мне приходится его перекомпилировать и доставлять патч целиком. Думаю создать экземпляр класса с помощью DLL. После поиска на delphi.about.com я обнаружил, что вместо DLL я могу использовать BPL. Это DLL для Delphi. Проблема в том, что почти все примеры, которые я нашел, говорят только о том, как экспортировать функцию. Я хочу динамически загружать BPL, и всякий раз, когда я заменяю BPL, я могу получить последний алгоритм класса, а не только экспортируемые функции.
Статья, которую я прочитал:
- http://delphi.about.com/od/objectpascalide/a/bpl_vs_dll.htm
- Система плагинов для приложения Delphi - bpl vs dll?
- http://delphi.about.com/library/weekly/aa012301a.htm
Любой URL или ОБРАЗЕЦ, как создать BPL с нуля для инкапсуляции компонента или класса, приветствуется.
Дорогой Гуру,
Предположим, у меня есть такой код:
unit unitA;
interface
type
B = class(TObject)
public
procedure HelloB;
end;
A = class(TObject)
public
function GetB: B;
function HelloA: String;
procedure Help;
end;
implementation
uses
Dialogs;
{ B }
procedure B.HelloB;
begin
ShowMessage('B');
end;
{ A }
function A.GetB: B;
begin
Result := B.Create;
end;
function A.HelloA: String;
begin
Result := 'Hello, this is A';
end;
procedure A.Help;
begin
//do something
end;
end.
Я хочу экспортировать все общедоступные методы A. Как сделать это DLL? Как использовать с другого юнита, куда импортировать? скажем:
var a: A;
a := A.Create;
a.GetB;
showMessage(a.HelloA);
A не объявлен в модуле (он находится в DLL). Пожалуйста, порекомендуйте.
Ура. Получил вчера вечером. Все, что мне нужно сделать, это заставить объект реализовать интерфейс, который используется в вызывающем модуле для перехвата экземпляра объекта, возвращаемого DLL.
Спасибо вам всем.