2012-08-10 4 views
0

나는 다음과 같은 방법으로 COM 개체를 사용하려고 해요 :방법 목록은

Dim l 
l = CreateObject("tst.Ax") 
Dim err As Long 
Dim st As ULong 

Try 

    l.AX_hdr(st, err) 

    Catch ex As Exception 
    MsgBox(ex.Message) 
End Try 

그리고이 COM 개체 중 일부 코드를 실행하기 때문에 나는 오류

TYPE_E_ELEMENTNOTFOUND 

CreateObject를 올바르게 작동해야 초기화 (메시지 상자 표시). 개체 AX_hdr 메서드가 있어야하지만 왜 그것을 찾을 수없는 생각이 없어. 또 뭐가 잘못 되었을까요? COM 개체에서 함수 목록을 검색하는 방법이 있습니까?

+1

후기 바인딩을 사용할 때 COM 서버에서 구현 된 메서드와 속성을 알기 위해서는 좋은 설명서가 있어야합니다. COM은 리플렉션을 지원하지 않습니다. 구성 요소의 소유자 또는 작성자에게 문의하십시오. –

답변

2

당신은 당신의 COM 구성 요소에 add a reference, 당신은 초기 바인딩을 사용하여 개체를 인스턴스화 할 수있는 경우 : 당신은 모든 방법에 대한 인텔리 센스를 가지고 구성 요소의 속성이나 당신이 할 F2를 누르면됩니다

Dim l as new tst.Ax 

Object Browser을 사용하여 검색하십시오.

원하는 경우 나중에 언제든지 참조를 삭제할 수 있습니다 (단, early binding is usually preferable). 좋은 선택의 이유가 있거나 다른 옵션이없는 경우에만 후기 바인딩을 사용합니다.

+0

나는'tst.Ax'를 참조에 추가했고'Dim l as new tst.Ax'를 선언했습니다. 그러나'l' 변수 뒤에 dot를 누르면, 5 개의 메소드 ('Equals, GetHashCode, GetType, ReferenceEquals, ToString') 중에서 선택이 있습니다. 이것은 'Dim l as new nonExistingObject'를 선언 할 때와 동일합니다. – vico

+0

'Dim l as new nonExistingObject'가 컴파일되지 않아서 어떤 방법을 볼 수 있을지 모르겠습니다! 그래서 내 추측은 당신이 당신의 물건을 올바르게 선언하지 않았다는 것입니다. 객체 브라우저를 사용하거나 구성 요소의 설명서를 참조하십시오. –