Com 有人能帮我从c#dll处理vb6中的事件吗
我发现了一个不错的NFC读卡应用程序,它在winforms中运行得非常好 可在此处找到代码: 吉特: 但我有个问题。我现在需要在com for vb6中实现这一点 我必须“复制”事件挂钩,如下面的代码所示 我成功地向vb6公开了方法和事件Com 有人能帮我从c#dll处理vb6中的事件吗,com,vb6,com-interop,Com,Vb6,Com Interop,我发现了一个不错的NFC读卡应用程序,它在winforms中运行得非常好 可在此处找到代码: 吉特: 但我有个问题。我现在需要在com for vb6中实现这一点 我必须“复制”事件挂钩,如下面的代码所示 我成功地向vb6公开了方法和事件 NFC = new NFCReader(); NFC.CardInserted += new NFCReader.CardEventHandlerDelgate(Card_Inserted); NFC.CardEjected += new NFCReade
NFC = new NFCReader();
NFC.CardInserted += new NFCReader.CardEventHandlerDelgate(Card_Inserted);
NFC.CardEjected += new NFCReader.CardEventHandlerDelgate(Card_Ejected);
NFC.DeviceDisconnected += new NFCReader.CardEventHandlerDelgate(Device_disconected);
NFC.StartCardMonitoring();
有了@kunif提供的信息,为了在VB6中使用NFC阅读器,首先必须使.NET库COM可见。如果你有源代码,你可以很容易地做到这一点。否则,如果您只有一个DLL,您可以编写一个包装DLL并使COM可见。听起来,当您说“我成功地将事件和方法公开给vb6”时,您可能已经这样做了 下一步是在VB6:Project>References中添加对库的引用 然后,您可以创建NFCReader的实例:
Public WithEvents objNFC As NFCReader
Private Sub Form_Load()
' Create NFCReader object
Set objNFC = New NFCReader
objNFC.StartCardMonitoring
End Sub
' Card Inserted event handler
Private Sub objNFC_CardInserted()
' Handle Card Inserted event
End Sub
' Card Ejected event handler
Private Sub objNFC_CardEjected()
' Handle Card Ejected event
End Sub
' Device Disconnected event handler
Private Sub objNFC_DeviceDisconnected()
' Handle Device Disconnected event
End Sub
添加对DLL的引用后,您应该会看到事件及其参数显示在VB6中。确保将该对象声明为WithEvents,并且该对象将显示在Visual Studio中“代码”窗口的左侧下拉列表中。右侧下拉列表将显示可用的事件。请参阅本页及相关页开始的资料。感谢您的回答,我成功地向vb6公开了事件和方法。如果有机会,请将问题标记为已回答,如果遇到其他编程问题,请返回堆栈溢出!