c#调用c++ delegate callback

对普通类型的封装见http://msdn.microsoft.com/zh-cn/library/zah6xy75(v=vs.110).aspx

 

封装byte[]  

c++ 端 typedef void (__stdcall *TestDel)(char* arr,int len);

c# 端  

[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void _AddDel(IntPtr pData , int len);

public static void TestDel(AddDel callBack){
_TestDel((IntPtr pData , int len)=>{
byte[] data = new byte[len];
Marshal.Copy(pData, data, 0, len);

//todo
});
}

posted @ 2014-12-03 14:48  拭心  阅读(613)  评论(0编辑  收藏  举报