出现错误:
对WaveLib类型的垃圾回收委托进行了回调。WaveNative+WaveDelegate::Invoke '。这可能会导致应用程序崩溃、损坏和数据丢失。将委托传递给非托管代码时,托管应用程序必须使这些委托保持活动状态,直到保证它们永远不会被调用为止。
我的函数从C++ DLL中被调用。
我的代码:
Public Delegate Sub MyDelegate()
<DllImport("file.dll")> Public Function FuncRegister(ByVal pFunc As MyDelegate) As Integer
End Function
FuncRegister(AddressOf MyCallback);
Public Sub MyCallback()
counter = counter + 1
End Sub
1条答案
按热度按时间guicsvcw1#
以下是如何在C#中使回调保持活动状态的方法,以供参考