2010-12-07 5 views
5

VB6에서 클래스를 구현 (즉 인터페이스 구현)하려하지만 "컴파일 오류 : 인터페이스에 잘못된 인터페이스 : 인터페이스에 데이터 필드가 있습니다"라는 오류가 발생합니다. 그래서 수업을 구현할 수있는 제한이 있는지 궁금합니다. 또는이 특정 오류가 나타나는 이유를 아는 사람이라면 도움이 될 것입니다.VB6의 인터페이스 제한

더 명확히해야하는지 알려주세요. 고마워.

데이브

+1

질문에 인터페이스 코드를 게시하면 도움이됩니다. – MusiGenesis

+0

제가 구현하고있는 클래스는 원본이없는 구식 스프레드 시트 라이브러리 (즉, F1Book)입니다. 그래서 내가 게시해야 할 유일한 코드는 "Implements F1Book"입니다. –

답변

6

VB6의 인터페이스는 멤버 변수가 아닌 메서드 만 포함 할 수 있습니다.

let 및 get 함수를 사용하여 속성 메서드를 구현하여 멤버 변수를 시뮬레이트 할 수 있습니다.

+0

멋진, 조엘의 대답. 나는 stackoverflow 전에 귀하의 블로그를 따라 갔다. 주제에 대해 더 알고 싶다면 MSVB6가 모든 멤버 변수를 쉽게 뽑을 수있는 방법을 제공하는지 알고 있습니까? –

4

VB의 형식 라이브러리 생성자에는 많은 제한이 있습니다. 그 인터페이스에 사용 된 매개 변수가 아마도 VB가 멋진 코드와 호환되지 않을 것입니다 (예 : 부호없는 long). VB는 unsigned long을 처리 할 수 ​​있습니다. 보통 LONG 변수에 넣은 다음 부호 때문에 조금 다르게 처리해야합니다.

그래서이 인터페이스가 정의 된 형식 라이브러리를 열려면 OLE보기를 사용하고 그 자체로 IDL 파일에 복사 한 다음 인터페이스 정의를 수정하여 MIDL로 다시 컴파일하는 것이 가장 좋습니다 VB와 친숙합니다.

Matthew Curland는 VB6 책 "Power techniques for Everyday programs"에서 이것을 설명합니다.