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