Delphi 如何在不修改给定单元的情况下禁用该单元的警告?
所以我在我的单元中加入了一些其他单元,在构建应用程序后,我收到了来自这些单元的大量警告。数量如此之大,以至于我很难在列表中找到自己的警告 是否有一些编译器指令允许我关闭这些警告?但请注意,我不想以任何方式修改这些单位。我想实现这样的目标:Delphi 如何在不修改给定单元的情况下禁用该单元的警告?,delphi,delphi-2009,compiler-warnings,Delphi,Delphi 2009,Compiler Warnings,所以我在我的单元中加入了一些其他单元,在构建应用程序后,我收到了来自这些单元的大量警告。数量如此之大,以至于我很难在列表中找到自己的警告 是否有一些编译器指令允许我关闭这些警告?但请注意,我不想以任何方式修改这些单位。我想实现这样的目标: unit MyUnit; interface uses UnitA, {$WARN EMIT_WARNNIGS OFF} UnitB, {$WARN EMIT_WARNNIGS ON} UnitC, UnitD. implementation us
unit MyUnit;
interface
uses
UnitA, {$WARN EMIT_WARNNIGS OFF} UnitB, {$WARN EMIT_WARNNIGS ON} UnitC, UnitD.
implementation
uses
UnitE, {$WARN EMIT_WARNNIGS OFF} UnitF, UnitG, {$WARN EMIT_WARNNIGS ON} UnitH.
这是我想要的一个虚构的编译器指令,或者它存在,但我不知道
谢谢你的时间。不,我不相信有这样的指示 我发现实现这一目标的唯一方法是
- 汇编一切
- 将有问题的单元的dcu放在编译器可以找到它的地方
- 确保dcu在该dcu的源代码之前找到,或者确保编译器无法找到该源代码
一个警告:确保当你(需要)处理有问题的单元时,dcu被移除,否则你将陷入混乱。GExperts的“Clean directories”可以帮助实现这一点。有一个编译器指令可以关闭警告,但这只能在项目选项中设置,在这种情况下,它适用于所有单元,或者在单元本身中设置,在这种情况下,它仅适用于该单元 所以,你还有一些选择 不切实际的选项,完全按照您的要求执行: 因此,唯一的解决方案是在项目中禁用警告,然后使用该指令在您自己的所有单元中启用它们 最简单、最现实的选择: 编译单元一次,并且只通过从库路径中删除源代码来使用DCU。如果您不想编辑它们,这是最简单的 您仍然可以将它们添加到与库路径不同的浏览路径中。在这种情况下,将使用DCU,但Delphi仍然可以找到源代码,因此您仍然可以在调试时导航它们 小优点是构建项目的速度也更快,因为这些单元不需要在每次构建时重新编译 最佳选择: 停止使用这些设备。有这么多警告的设备是劣质软件,可能会导致严重问题 其他解决方案:
- 抛开您不修改这些单元的愿望,无论如何都要向这些单元添加编译器指令
- 解决警告问题
uses
{$WARNINGS OFF}{$HINTS OFF}
TheUnitHere;
{$WARNINGS ON}{$HINTS ON}
猜猜看,你有没有试过
使用…,{$Warnings Off}UnitB{$Warnings On},…
?反问题:为什么不解决这些警告并…呃…khm…修复它们?要么修复,要么停止!相信我,如果可以以任何方式避免的话,你不想使用过于臃肿的警告代码。你可以依靠各种错误和访问违规,浪费大量时间。只需添加{$warnings OFF}
发送给每一个恶棍,并对其执行+1的“搁置您的愿望…”,因为这就是我在面对此问题时所做的。修改第三方源代码时最重要的问题是,您可能在以后升级时遇到问题,但只有一个{$WARNINGS OFF}
不会产生任何问题,因为它不会影响单元中的实际代码。感谢您的提示,我将此标记为一个答案,因为您给了我广泛的选择。只是澄清一下,当您说源路径时,您是指浏览路径吗?@outlier确实是。我已经更新了答案。谢谢!使用VclSty很遗憾lesUtils(非常常见)正在生成大量提示。理想的解决方案是修复它们,但如果我更新该源代码,它将是不修复的:-/仍然使用delphi 7?这是一个很好的提示,+1。