(已更新)关于混合编程中C#调用C/C++DLL碰到具有数组、指针的参数或返回的解决办法(亲测)!

更新部分直接看文章最后!


        

如题,最近一段一直在搞工控类项目的上位机调度软件开发,由于扫描模块是余博用C++写的, 所以涉及到混合编程的问题了。

        C#调用C++DLL的方法网上都有,把DLL放进exe的生成目录内,然后引用System.Runtime.InteropServices命名空间,然后在主类内部加上外部引用声明就好了。

        [DllImport("CLMS511Data_MFC.dll", EntryPoint = "CLMS511Data", CallingConvention = CallingConvention.Cdecl)]
        public static extern void clms511data(ref Int32 m,ref Int32 n);

具体声明如上,EntryPoint是DLL内对应的方法名,下面的方法命是自己重命名的,这个随意,后面调用就用这个名字。修饰符public可以换别的或去掉,其他照写吧。

        重点就是在这里,dll内的方法根据接口和余博的描述看,无返回,但接受两个Int32型数组指针,方法格式为大致为:

void function(int32* a,int32* b)

        C++DLL的部分功能就是读取两个数组指针&#

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值