我在一个单元有一个班。通常,当我更改其方法的算法时,我必须重新编译它并将补丁作为一个整体交付。我认为使用 DLL 创建类的实例。在delphi.about.com上搜索后,发现不用DLL,可以用BPL。它是 Delphi 的 DLL。问题是我发现的几乎所有示例都只是告诉如何导出函数。我想动态加载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
非常感谢任何如何从头开始创建 BPL 以封装组件或类的 URL 或 SAMPLE。
亲爱的大师,
假设我有这样的代码:
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 返回的对象实例。
谢谢你们。