2
我試圖使用下面的函數來映射另一個數據到達時調用的函數。 C++函數創建一個新的線程,我的函數將被調用。它工作了幾秒鐘,但後來我得到一個錯誤:(我已經變成了「啓用非託管代碼調試看到這個錯誤」) Unhandled exception at 0x7725158e in threadTest.exe: 0xC0000005: Access violation.
Pinvoke C#:委託函數導致崩潰
如果我從委派的功能一切正常刪除IntPtr frameData
,因此我懷疑我應該做些什麼來讓代表班的聲明避免發生。
C#代碼:
public delegate void HandlerFunction(IntPtr frameData);
[DllImport("Cortex_SDK.dll")]
public extern static int Cortex_SetDataHandlerFunc(HandlerFunction function);
-----
public class myClass
{
static HandlerFunction myFunction = new HandlerFunction(threadFunction);
public myClass()
{
Cortex.Cortex_SetDataHandlerFunc(myFunction);
}
private static void threadFunction(IntPtr FrameData)
{
}
}
是的,它似乎在做伎倆,謝謝! – Tistatos 2011-03-09 15:56:13
@Tistatos感謝您讓我知道它的工作! – 2011-03-09 16:04:05
我有同樣的問題,但我不明白什麼是'cdecl'和'stdcall'你能解釋一下嗎? – STF 2017-10-25 12:25:34