2010-03-08 3 views
6

Delphi7에서 작업하면서 VarIsEmpty 함수가 존재할뿐만 아니라 VarIsEmptyParam 함수도 존재한다는 것을 알았습니다. 주어진 변형이 할당되지 않은 선택적 매개 변수를 나타내는 경우VarIsEmpty 함수와 VarIsEmptyParam 함수의 차이점

VarIsEmptyParam가 true를 돌려 : 델파이의 도움이 많은 설명을 제공하지 않기 때문에

.

변형에 다른 값이 포함 된 경우 함수 결과는 false입니다.

아무도이 기능을 사용하고 있는지 궁금해하고 있었고, 그렇다면이 기능을 어떻게 사용하는지 궁금합니다.

답변

8

COM에서는 어떤 위치에서든 메서드 호출에 선택적 매개 변수를 사용할 수 있지만 Delphi에서는 끝 부분에서만 가능합니다. 따라서 매개 변수를 생략하려면 EmptyParam 대신 쓸 수 있습니다. EmptyParam은 올바른 값으로 초기화 된 전역 변수입니다.

이제 COM 인터페이스를 구현할 때 이러한 선택적 매개 변수도 처리해야합니다. 이 생략 된 매개 변수를 찾는 방법은 VarIsEmptyParam입니다.

param이 생략되지 않았기 때문에 매개 변수로 지정된 빈 변형도 VarIsEmptyParam = false가됩니다. 그냥 비어 있지만 거기에 있습니다.

그래서 일반적있다 : 빈 변형 한 반면

VarIsEmpty(v) ==> not VarIsEmptyParam(v) 

VarIsEmptyParam(v) ==> not VarIsEmpty(v) 
+2

'EmptyParam'는 Var_ParamNotFound' '의 에러 값 varError''의 변형 형태를 갖는다 가변 유형의 'varEmpty'. 두 가지 완전히 다른 종류의 데이터. 이름이 비슷합니다. –