我正在尝试找到我的应用中哪个单元使用特定的.dcu。由于我不知道哪个单位,我已经重命名了dcu以在编译时产生异常:
[DCC错误] F1026 - 找不到文件'IdThread.dcu'
有没有办法在我的项目中找到使用此文件的单位?我知道这是一个Indy相关单位,但在我的项目中我没有任何Indy组件!
答案 0 :(得分:0)
作为最后的手段,您可以使用类似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文件中提取“可读”文本。