我在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 ×1