如何获取一个Delphi编译包(.dcp文件)中的单元列表?

4
有没有一种方法可以列出Delphi编译包中的单元/类?
4个回答

3

您是否看过Delphi 7附带的TDUMP实用程序?Bpl只是一种高级DLL,因此您可以列出其导出函数:

例如:

"C:\Program Files\Borland\Delphi7\Bin\TDUMP.EXE" AFWRTL_RD7.bpl

Turbo Dump Version 5.0.16.12版权所有(c)1988, 2000 Inprise Corporation

              Display of File AFWRTL_RD7.BPL

AFWRTL_RD7.bpl的导出

共有91个导出名称,91个导出地址。基数为1。

...

000046B4   31 000A __fastcall Fgint::Base2StringToFGInt(System::AnsiString, Fgint::TFGInt&)

如果您查看导出函数,函数名称似乎带有单元或依赖包名称的前缀,例如 Fgint::Base2StringToFGInt 是单元 Fgint.pas 中的函数 Base2StringToFGInt。

或者,您可以查看随 Windows 资源工具包一起提供的 depends.exe 工具。该工具提供了一个 GUI 来查看 DLL(或 BPL)的内容。

更多详情请参见:

http://www.microsoft.com/downloads/details.aspx?FamilyID=49ae8576-9bb9-4126-9761-ba8011fabf38&displaylang=en

Vince


谢谢。我曾经考虑过使用 TDump,但后来意识到我想要查看的是 DCP 而不是 BPL。不幸的是,我没有 BPL。无论如何,感谢您的建议! - CodeAndCats

3
您可以创建一个新的包,将您的.dcp添加到其requires条款中,添加一个新单元并在uses子句中使用代码完成-它将向您显示所有所需包中的所有可用单元。如果您的.dcp是唯一的要求包,并且您将其设置为按范围排序(在下拉菜单中右键单击),则来自您的.dcp的单元应该在顶部。
我不确定这是否已经在Delphi 7中起作用。它在Delphi 2007中有效。

不幸的是,在 Delphi 7 中这并不起作用,但是我仍然将其作为接受的答案,因为它至少在更新的版本中可以使用。谢谢。 - CodeAndCats

0
除了询问开发人员或阅读文档,答案是否定的。

0

JCL "使用专家" 可以在 IDE 中展示出很多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接