C#调用C++动态链接库dll

1、首先需要导出C++的dll这个我就不多说了

2、C#当中调用的方式

        [DllImport("OutTest.dll", EntryPoint = "GetName",CallingConvention = CallingConvention.Cdecl)]
        public static extern void GetName();
不需要再项目当中引用该dll,直接像上面那样调用就可以了,但是前提是该dll是正确地被导出,且路径在相应的目录下面。

注意:
调用的格式是以C标准调用,怎么调用是由导出的时候指定的,可以在导出函数的.cpp文件上右键->属性->Advanced->Calling Convention里面设置调用的时候是怎么调用的,默认是_cdecl的方式进行调用,还可以是 _stdcall.

3、C#调用C++dll中参数类型的对应关系(常用的):
参考:https://my.oschina.net/u/216751/blog/178834
- C++参数类型 C#参数类型
- void* -> IntPtr
- char* -> string byte[] StringBuilder都可以?
- &变量名 -> 加上ref或者out
- *变量名 -> 加上ref或者out
- string -> byte

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值