调用其他库.dll

购买硬件后,商家会提供函数库文件。

这个dll文件一般都是加密的。无法添加引用到项目内。

需要在项目里添加动态链接库

1添加参数类型,用于参数表传递

public struct VCI_BOARD_INFO
{
    public UInt16 hw_Version;// 硬件版本号,用16进制表示。比如0x0100表示V1.00。
    public UInt16 fw_Version;// 固件版本号, 
    public UInt16 dr_Version;// 驱动程序版本号,
    public UInt16 in_Version;// 接口库版本号,
    public UInt16 irq_Num;// 保留参数。
    public byte can_Num;// 表示有几路CAN通道。
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
    public byte[] str_Serial_Num;// 此板卡的序列号。
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
    public byte[] str_hw_Type;// 硬件类型,比如“USBCAN V1.00”(注意:包括字符串结束符’\0’)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
    public byte[] Reserved;// 系统保留。
}

2 添加函数,这个由于加密,只能从二次开发手册里找。

        //方法
        /*------------兼容ZLG的函数描述---------------------------------*/
        [DllImport("controlcan.dll")]
        static extern UInt32 VCI_OpenDevice(UInt32 DeviceType, UInt32 DeviceInd, UInt32 Reserved);
        [DllImport("controlcan.dll")]
        static extern UInt32 VCI_CloseDevice(UInt32 DeviceType, UInt32 DeviceInd);
        [DllImport("controlcan.dll")]
        static extern UInt32 VCI_InitCAN(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd, ref VCI_INIT_CONFIG pInitConfig);

这个需要添加引用:      using System.Runtime.InteropServices;

文件路径

1文件需要保存在正确的位置,不然会出错。

 2文件需要放在 Debug文件夹内

 如果运行出现错误

 说明库的CPU位数不对,试试改64位CPU

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值