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);
C是一种编程语言,由美国计算机科学家德尼斯·里奇在20世纪70年代初开发。它是一种通用的、结构化的高级编程语言。 C的设计目标是提供高效的编译器,并能与底层的操作系统进行良好的交互。因此,C语言广泛应用于系统编程、嵌入式系统、操作系统和编译器的开发以及其他对性能要求较高的领域。 C语言的语法简洁且灵活,支持面向过程的编程范式。C的核心功能包括变量、数据类型、运算符、流程控制语句和函数。它也提供了许多标准库函数,使得开发者能够更方便地进行各种操作。 C语言具有良好的可移植性,且易于学习和使用。许多编程语言都受到C的影响,例如C++C#、Java等。这些语言都从C中借鉴了语法和特性,因此学习C语言可以为后续学习其他编程语言打下坚实的基础。 尽管C语言在一些方面有限制和不足,但它仍然是许多开发人员和计算机科学家的首选语言之一。通过使用C语言,开发者可以更好地控制程序的细节,从而提高程序的性能和效率。此外,C语言的广泛应用也使得很多开源库和工具都以C语言编写,进一步扩展了C语言的应用领域。 总结来说,C语言是一种高效、灵活且通用的编程语言。它的设计目标是与操作系统良好交互,适用于系统编程和对性能有要求的领域。学习C语言可以为后续学习其他编程语言打下基础,并有助于开发者掌握底层细节和提高程序性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值