У меня есть класс в единице. Обычно, когда я менял алгоритм его методов, мне приходилось его перекомпилировать и доставлять патч целиком.
Я думаю, чтобы создать экземпляр класса с использованием 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).
Пожалуйста, сообщите.
Hurray. Я получил это прошлой ночью. Все, что мне нужно сделать, - это заставить объект реализовать интерфейс, который используется в модуле вызывающей стороны для перехвата экземпляра объекта, возвращаемого DLL.
Спасибо всем.