单元路径编译为可执行文件

Sha*_*adi 8 delphi delphi-7

我注意到在编译的exe中有第三方组件单元的硬编码路径.例如,如果我在编译的可执行文件中使用VirtualTrees组件TVirtualStringTree,我可以多次找到此路径:

C:\Program Files\Borland\Delphi7\Source\Virtual Treeview\Source\VirtualTrees.pas
Run Code Online (Sandbox Code Playgroud)

这适用于我使用的几乎所有第三方组件,exe中组件单元的路径.我认为这些信息不应该是可执行的,但是不知道我需要在Delphi 7设置或项目设置中更改什么来摆脱它.有人有解决方案吗?

TLa*_*ama 10

你看到的是保留断言源的断言消息.如果您转到Project / Options或使用CTRL + SHIFT + F11快捷方式打开项目选项对话框,则可以禁用它们.

取消选中选项卡中的Assertions复选框Compiler,保存项目选项并重建项目.不重新编译,但重建!

在此输入图像描述

Assert当您启用该选项时,您将始终看到二进制文件中的路径.

  • @Shadi:保持断言实际上非常有用.您的内部测试永远不会捕获所有可能的错误情况,并且有断言可以防止数据损坏.(如果您还使用错误报告工具,如MadExcept或EurekaLog,它会更有用.) (5认同)
  • @MasonWheeler为您的评论+1.IMHO断言不应与单元测试混淆,应始终保持启用状态.断言应检查可能由于代码逻辑而导致执行的某些内容,例如未设置的参数或对方法的无效序列调用.此类逻辑问题无法在编译时定义,但可以在运行时使用断言进行跟踪.这对于单元测试来说是多种多样的. (2认同)