小编use*_*642的帖子

在后台(kibitz)编译器中跳过源代码

我在Delphi7中遇到了后台编译器的问题:在我的项目中有一行代码会导致后台编译器停止并显示错误消息,因此无法进行CodeCompletion.正常的编译器和语法检查对此代码没有问题,并且生成的应用程序是正确的.

我的问题是,在执行后台编译时是否有任何方法可以跳过此代码行(例如编译器指令).

重现错误的示例代码:

procedure ProduceKibitzError;
var
  v : Variant;
begin
  v.End; // This line stops kibitz compiler
end;
Run Code Online (Sandbox Code Playgroud)

此代码放在主单元中使用的单元"Error.pas"中.如果您尝试在主单元中调用CodeCompletion,它将停止并显示消息"Error.pas无法编译"(实际消息为德语).

有趣的是,错误只发生在项目编译或第一次执行语法检查之前.编译完成后,CodeCompletion正在运行,必须重新启动Delphi才能重现错误.

更新: 添加带有结束标签的空Assembler块是问题的解决方案.以下是不会停止后台编译器的更改示例代码:

procedure ProduceKibitzError;
var
  v : Variant;
begin
  asm
    @@END:
  end;
  v.End;
end;
Run Code Online (Sandbox Code Playgroud)

非常感谢,

基督教

delphi

4
推荐指数
1
解决办法
404
查看次数

标签 统计

delphi ×1