登录
首页 » C#,委托,C++,DLL,回调 » C#通多委托实现对C++所编写DLL的回调

C#通多委托实现对C++所编写DLL的回调

于 2022-07-18 发布 文件大小:12.46 MB
0 59
下载积分: 2 下载次数: 1

代码说明:

C#语言在很多应用中会调用C++编写的DLL,对于DLL中的函数,只需要入参的还好,当需要通过出参返回结果时,如果不注意往往会出现意想不到的问题,这其中的原因主要是因为C++属于非托管语言,而C#属于托管语言,两者在变量传递上有很多不同造成的。解决此问题的方法有多种,常见的有:将接口DLL封装成COM组件,也可以采用托管的C++语言CLI来编写DLL,不过在本文会推荐一种更为简单的方法,即通过委托(回调)来解决出参的问题。其原理也很容易理解,就是事先将C#语言处理函数的指针传递给DLL,这样当DLL需要返回结果时,只需要调用指针对应的函数即可。在调用指针时,所要返回的结果是作为入参传递给C#的处理函数的,这样就避免了出参在DLL接口之间传递的问题,以下就是DEMO代码,供大家参考。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C#通多实现对C++所编写DLL的
    C#语言在很多应用中会调用C++编写的DLL,对于DLL中的函数,只需要入参的还好,当需要通过出参返回结果时,如果不注意往往会出现意想不到的问题,这其中的原因主要是因为C++属于非托管语言,而C#属于托管语言,两者在变量传递上有很多不同造成的。解决此问题的方法有多种,常见的有:将接口DLL封装成COM组件,也可以采用托管的C++语言CLI来编写DLL,不过在本文会推荐一种更为简单的方法,即通过委托(回调)来解决出参的问题。其原理也很容易理解,就是事先将C#语言处理函数的指针传递给DLL,这样当DLL需要返回结果时,只需要调用指针对应的函数即可。在调用指针时,所要返回的结果是作为入参传递给C#的处理函数的,这样就避免了出参在DLL接口之间传递的问题,以下就是DEMO代码,供大家参考。
    2022-07-18 01:15:24下载
    积分:1
  • 696518资源总数
  • 104223会员总数
  • 35今日下载