delphi – 向项目添加单元是从项目源中删除编译器指令

这应该是这样工作还是我做错了什么?

我在我的项目源代码中有这个代码

{$IFDEF DEBUG}
  ADebugUnit,{$ELSE}
  ARelaseUnit,{$ENDIF}

我希望在调试模式下使用ADebugUnit,但在发布模式下编译时使用AReleaseUnit.当我选择向项目添加新单元时,这种方法效果很好.当我这样做时,它基本上将处理代码,并且只保留与项目当前设置的任何配置相关的单位.

例如,如果配置设置为Debug,那么在向项目添加新单元后,上面的代码将更改为:

ADebugUnit,

或者,如果我的配置设置为Release,则在添加新单元后将更改为以下内容

ARelaseUnit,

添加新单元后,我必须始终将其恢复为条件语句.有没有办法在没有添加新单元干扰的情况下实现这一目的?

解决方法

IDE拥有大部分DPR文件.小心你对它做了什么,或者你冒着你所观察到的风险(或者更糟 – 根据更改的性质,IDE有时可能决定不允许编译文件!).

除此之外,这意味着您不能有条件地在DPR文件中包含单位.你必须找到解决你试图解决的任何问题的另一种解决方案.

例如,您可以使用项目中其他位置的单元而不是DPR文件.

或者也许您可以将两个单元合并为一个,然后有条件地编译其内容.

或者也许您可以一直使用调试代码,因为这会增加您运行相同代码的机会.

或者,如果仅在使用“添加单元”对话框时出现此问题,则可以放弃该对话框并手动编辑DPR文件.正如你所注意到的那样,除了use子句被重写之外,在项目中添加一个单元背后没有别的魔力.

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...