C# 調用 C++ 回調函數

轉載地址:http://www.cnblogs.com/dipwater/archive/2012/11/07/dipwater_delegate.html

同類可參考:

http://www.cnblogs.com/cssmystyle/archive/2012/03/15/2397524.html

1. 定義回調函數對應的委託

1 [UnmanagedFunctionPointerAttribute(CallingConvention.StdCall, CharSet = CharSet.Ansi)]
2 public delegate void RealCallback(int hRealHandle, int dwDataType, IntPtr buffer, uint dwSize, IntPtr lpVoid);

  2. 參數定義爲 Delegate

1 [DllImport(DvxSdkPath, EntryPoint = "DVR_StartRealPlay", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
2 public static extern int StartRealPlay(int hUserHandle, Delegate callback);

  3. 創建一個委託的實例

1 private RealCallback realCallBack = null;

  4. 定義委託對應的函數

1 private void RealCallbackFun(int hRealHandle, int dwDataType, IntPtr lpReal, uint dwSize, IntPtr lpVoid)
2 {
3       
4 }

  5. 給委託賦值

1 realCallBack = RealCallbackFun;

  6. 使用委託

1 StartRealPlay(handle, realCallBack);
發佈了81 篇原創文章 · 獲贊 104 · 訪問量 131萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章