列出没有参考的代码

时间:2010-09-12 19:39:04

标签: delphi linker delphi-2007

我使用Bold for Delphi和D2007。模型相当大,现在我发现模型中有许多方法没有被调用。编译器应该给出一个提示,但它很安静。

在Delphi中,链接器删除没有任何引用的方法。然后在编译时给出一个提示。我试着解释Bold如何在模型中使用方法。

一个单元BusinessClasses.pas包含数百个这样的文件:

{$INCLUDE BusinessClasses_Interface.inc}
{$INCLUDE Quantity.inc}
{$INCLUDE Parcel.inc}
// and so on...

文件BusinessClasses_Interface.inc包含:

TParcel = class(TOrderItem)
public
  procedure WayBillAsXML(var aXMLstring: string);
end;

然后parcel.inc有实际的方法实现:

procedure TParcel.WayBillAsXML(var aXMLstring: String);

我认为如果我不调用WayBillAsXML,那么我应该从编译器中得到一个提示但是它很安静。理想情况下,我想要一个未引用的所有代码的列表。有办法吗?

1 个答案:

答案 0 :(得分:3)

编译器没有显示提示,因为该方法是公共的,因此其他一些代码可以调用它。受保护的方法也是如此。另一个(package-)单元可以有一个派生自你的类的类,这个派生类可以调用该方法 Delphi链接器不够智能,无法识别整个项目中未调用该方法。它对EXE / DLL文件和BPL文件的处理方式相同。但只有后者才允许其他代码调用该方法,而它可以删除EXE / DLL文件的方法。