------摘自:http://blog.youkuaiyun.com/soobey/archive/2005/08/29/467732.aspx
现在我们不得不写自己的dpk工程,以更改地检测我们的猜想。我们首先建立一个project group,包含三个工程:
program ProjectEXE;
uses
Forms,
Windows,
UnitFormMain in 'UnitFormMain.pas' {FormMain};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TFormMain, FormMain);
Application.Run;
end.
unit UnitFormMain;
interface
uses
Windows, StdCtrls, Forms, Classes, Controls;
type
TFormMain = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMain: T

本文探讨了Delphi中的包管理,包括DPK文件的contains子句和编译过程。通过实验发现,编译目标仅包含从uses子句出发的Unit集合减去requires子句的Unit集合。自动加载的包是那些与工程所需Unit有交集的包,而完全手动加载的包需要满足不被require且不在uses列表中。接口获取和避免自动装载也是关键问题。
最低0.47元/天 解锁文章
1870

被折叠的 条评论
为什么被折叠?



