Я разрабатываю библиотеку COM dll, и у меня есть небольшое приложение vb.net (vs 2005) для его тестирования.
Мой объект объявлен в приложении как
Private m_VarName As MyLib.CMyComClass
Пока все хорошо.
Но теперь мне нужно событие, чтобы сообщить приложению о некоторых вещах, поэтому я реализовал такое событиев COM dll и изменил объявление на
Private WithEvents m_VarName As MyLib.CMyComClass
Пока все хорошо, снова.Но если я добавлю Sub для обработки моего события:
Private Sub m_VarName_OnCaptureStop () Обрабатывает m_VarName.MyEvent
...
End Sub
В первый раз, когда я создаю объект, ничего плохого не происходит, но если я его заново создаю
Если (не m_VarName - ничего), то ReleaseComObject (m_VarName)
m_VarName= New MyLib.CMyComClass
, тогда я получаю загадочное исключение TargetInvocationException, которое, по-видимому, связано с отражением (которое, AFAIK, я не использую).
Если я уберу «Обрабатывает m_VarName».MyEvent "часть, кажется, все работает.В случае, если это имеет значение, я не стреляю никаким событием, пока.Есть идеи о том, почему это происходит?