C#调用C++的程序

        这两天公司给了一个新项目,要为USB以太网服务器(BT-3000GB)写一个切换程序,其实它本身是带了一个虚拟软件,但是不能满足公司的需求,所以要重新自己开发一款。于是参照着源码来进行开发,无奈源码是c++开发的,对我来说,有些晦涩难懂,于是乎,想出来一个方式,就是用c#补充为满足的要求,其他的功能还是保留c++的,在c#中调用c++的动态dll,开发中面临着很多问题,接下来会与大家分享。
1.在一个解决方案中创建两个项目,一个winform项目(这个和平常创建一样),一个c++项目(这个要注意,如下图)


这里要选择dll



建完如下所示:



2.c++项目生成dll需要注意的地方:
项目属性的设置,配置类型为dll,公共语言运行时支持选择/clr(公共语言运行时支持),否则在winform项目中无法使用。



3.c++中要调用的方法,c#如何引用
对于c++生成的dll的使用,我们需要对方法进行修饰,例如我要在c#中调用OnClickDevice方法,下面是c++和c#中各自的配置:
c++中首先声EXPORT_DLL,然后用来修饰方法,这样才能保证方法在其他程序中能被调用,具体原因参考博客:http://blog.csdn.net/xfz0330/article/details/51348548
   
   
   
#define EXPORT_DLL extern "C" __declspec(dllexport)
EXPORT_DLL DWORD OnClickDevice(int idex)
{
SXUSBDEVICE sxdev[MAX_DEVICE];
DWORD i=0, j, dwReaded, dwReturned, dwIp;
TCHAR szBuf[4096], szIp[64],szPortName[256];
 
 
ZeroMemory(gsxdev<
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值