C#调用VB的dll 纸币找零设备操作

本文介绍了一项关于纸币找零设备操作项目的经历,分享了如何使用C#调用VB开发的DLL文件的具体方法。文章详细解释了不同类型之间的转换,并提供了具体的结构体示例。

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

最近在做纸币找零设备操作的项目,需要调用一个VB开发的dll。努力一番,有些心得记之。

居然是高丽棒子开发的。唉,什么时候能够国产啊。!?

sensor(7) As Byte 相当于Vc byte sensor[7]

相当于C#

  [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]

byte[]  sensor;


类型转换示例

 public struct CDMMULTIDISPENSE
        {
           public byte error_cd;
           public byte reject_cd;
           [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]
           public byte[] sensor;
           [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
           public byte[] count;
        }

原VBdll中的类型如下
        //Type CDMCBXITEM
        //count(MAX_CASSETTE) As Byte ‘Number to dispense
        //End Type
        //Global lpCbxItem As CDMCBXITEM
        //Type CDMMULTIDISPENSE
        //error_cd As Byte ‘ Error code
        //reject_cd As Byte ‘ Reject code
        //sensor(7) As Byte ‘ Sensor code
        //count(MAX_CASSETTE) As Byte ‘ Dispensed count

附件

VC++与VB数据类型对应关系

VC++   VB  
short   Integer  
int   Long  
long  Long  
UNIT   Long  
ULONG   Long  
WORD   DWORDLong  
WPARAM   LPARAMLong  
WMSG   UMSGLong  
HRESULT    Long  
BOOL   Boolean  
COLORREF   Long  
HWND,HDC,HBRUSH,HKEY,等等   Long  
LPSTR   LPCSTRString  
LPWSTR,OLECHARBSTR   String  
LPTSTR   String  
VARIANT_BOOL   Boolean  
unsignedchar   Byte  
BYTE   Byte  
VARIANT Variant

有了VC的C#就明白了怎么对应了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值