我已經做了這從C代碼調用非託管函數。 pCallback是一個函數指針,所以託管端是一個委託。與代表問題
[DllImport("MyDLL.dll")]
public static extern Result SetCallback(
IntPtr handle,
Delegate pCallback,
CallbackType Type);
現在我設置
public delegate void pfnCallback(uint PromptID, ttsEventType evt, IntPtr lData);
public Form1()
{
pfnCallback cb = new pfnCallback(cback);
(...)
Wrapper.SetCallback(handle, cb, IntPtr.Zero, CallBackType.DEFAULT);
(...)
}
它給我一個錯誤說「......路過委託給非託管代碼時,他們必須保持活着......」
任何人都可以幫我 ?
問候
感謝您的答覆。我已經瞭解並嘗試你說什麼。但現在我「M得到一個未處理的win32異常,運行相關的回調時 – jose
也許你應該開始一個新的問題有關。一定要記錄好了,‘我發現了一個異常’是不會幫助任何人的幫助功能。您。 –