我正在尝试查找应用程序中哪个单元使用特定的.dcu。由于我不知道哪个单元,我已将dcu重命名为在编译时生成异常:
[DCC错误] F1026-找不到文件'IdThread.dcu'
有没有办法使用此文件在我的项目中找到单元?我知道这是一个与Indy相关的部门,但是在我的项目中,我没有任何Indy组件!
最佳答案
不得已时,您可以使用类似grep的工具在DCU本身中进行搜索:使用Windows内置的findstr命令:
findstr /ism "\<idthread\>" *.dcu
ObscureUnit.dcu
IdScheduler.dcu
将列出所有引用IdThread的DCU。
您可能需要检入库路径,以及仅以编译格式拥有的单元可能会有引用。
当然,IdThread可以在您的项目使用的另一个单元使用的单元中使用。您可能需要递归执行此操作。
注意:这可能不适用于Unicode版本的Delphi,因为findstr不支持Unicode,而且我不确定dcu中的引用是否使用Unicode。如果是这样,请使用启用Unicode的grep版本,或使用SysInternals
Strings
实用程序从dcu文件中提取“可读”文本。