私は、既存のVB6プロジェクトで使用されるサービスへのラッパーを作成しようとしています。私は、基本的なフレームワークのほとんどが1つの重要な側面を除いて動作している:私は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