购买硬件后,商家会提供函数库文件。
这个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