기존 VB6 프로젝트에서 사용할 서비스에 대한 래퍼를 작성하려고합니다. 한 가지 중요한 측면을 제외하고는 대부분의 기본 프레임 워크가 작동합니다. VB6 프로젝트에서 랩퍼를 참조 할 수 있으며 서브/함수 호출 등은 예상대로 작동하지만 이벤트는 그렇지 않습니다. 이벤트는 VB6 앱에서 볼 수 있지만 실행되지는 않습니다.COM에 노출 된 클래스 라이브러리의 이벤트 발생
VB.NET 코드 :
Public Event Action_Response(ByVal Status as String)
Public Function TestEvent()
RaiseEvent Action_Response("Test Done")
Return "Done"
End Function
VB6 코드 : 예상대로
이Dim WithEvents my_Wrapper as Wrapper_Class
Private Sub cmdTest_Click()
Set my_Wrapper = New Wrapper_Class
Debug.Print my_Wrapper.TestEvent()
End Sub
Private Sub my_Wrapper_Action_Response(ByVal Status As String)
Debug.Print Status
Set my_Wrapper = Nothing
End Sub
그래서, '완료'를 cmdTest 버튼 코드가 인쇄하지만 Action_Response 이벤트가 발생하지 않습니다. 이벤트를 시작하기 위해해야 할 일이 있습니까?
VB.NET 클래스 작성법 문서 –
@Hans : 클래스 라이브러리 프로젝트를 만들고 기본 클래스를 삭제 한 다음 새 항목을 추가하고 옵션에서 'COM 클래스'를 선택했습니다. – Antagony
이벤트가 제대로 작동하게하려면를 직접 사용해야했습니다. 나 + + + 자동으로 할 것이지만, 그런 식으로 작동하지 않습니다. –
DarinH