Delphi7의 백그라운드 컴파일러에 문제가 있습니다. 내 프로젝트에 배경 컴파일러가 오류 메시지와 함께 중단되어 CodeCompletion을 사용할 수 없게하는 코드가 하나 있습니다. 일반 컴파일러와 구문 검사는이 코드에 아무런 문제가 없으며 결과 응용 프로그램은 정확합니다.백그라운드 (kibitz) 컴파일러에서 소스 코드 건너 뛰기
제 질문은 백그라운드 컴파일이 수행 될 때이 코드 라인을 건너 뛸 수있는 방법이 있는지입니다 (예 : 컴파일러 지시문). 이 코드는 메인 유닛에 사용되는 장치 "Error.pas"에 위치
procedure ProduceKibitzError;
var
v : Variant;
begin
v.End; // This line stops kibitz compiler
end;
:
예 코드는 오류를 재현한다. 본체에서 CodeCompletion을 호출하려고하면 "Error.pas를 컴파일 할 수 없습니다"라는 메시지와 함께 중지됩니다 (실제 메시지는 독일어로 표시됨).
흥미롭게도 오류는 프로젝트가 컴파일되거나 구문 검사가 처음 수행 될 때까지만 발생합니다. 컴파일 후 CodeCompletion이 작동하고 오류를 재현하려면 Delphi를 다시 시작해야합니다.
업데이트 : 끝 레이블이있는 빈 어셈블러 블록을 추가하면 문제를 해결할 수 있습니다.
케어 게시 할 어떤 코드의 * 한 줄 *와 * ErrorMessage가 *처럼? –
빈 asm/end 블록을이 루틴에 추가해보십시오. 그것은 kibitz 컴파일러가 프로 시저 분석을 건너 뛰는 것을 방지합니다. Graphics.pas는 @@ end 레이블을 가진 asm/end 블록을 가지고 있으며 컴파일러는 그것 때문에 특별히 asm/end 블록을 처리합니다. –