C++定义DLL,C#调用 数组传递

本文介绍如何在C++中定义DLL,并详细阐述如何在C#应用程序中调用该DLL,特别是处理数组类型的参数传递。涉及到的关键文件包括xxx.idl、xxxCtrl.h和xxxCtrl.cpp。在C#中调用时,需要先引入COM组件。调试混合程序时,尤其是当C#作为容器调试ActiveX控件时,需要在项目配置属性的调试选项中将调试器类型设为"混合"或"仅限本机",确保能够正确设置断点进行调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一部分 c++

关键程序文件:

xxx.idl

 

1  [id(DISPID_ABOUTBOX)]  void  AboutBox();
2  [id( 4 )]   short  IReadPort(unsigned  char   * inPArr1);//byte类型接口, 在非托管语言中可以正常使用,托管语言中无法正常传入数组
3  [id( 3 )]   short  I1( void *  a1);//与c#的传入System.InPtr类型对应。

 

 

xxxCtrl.h

 

//  调度和事件 ID
public :
    
enum  {
    };
    
short  IReadPort(unsigned  char  inPArr1[]);//程序内接口定义
    
short  I1( void *  a2);//
};

 

 

xxxCtrl.cpp

 

C++定义DLL,C调用 数组传递 - JAN - mingrui-521 的博客 代码
//  调度映射
BEGIN_DISPATCH_MAP(CSCMUSBBULKCtrl, COleControl)
    DISP_FUNCTION_ID(CSCMUSBBULKCtrl, 
" AboutBox " , DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值