C# 引用C的DLL出错
情况是这样的,我买了一块插在电脑上的CAN卡,想用C#做一个上位机程序,厂家提供了一个DLL,里面有个函数声明如下:
extern "C" void _stdcall HSCAN_InitCANDevice(unsigned char nDevice,unsigned char nPort,HSCAN_INIT *pInit);
在C#中我是这样声明的
[DllImport("HS2102API.DLL", CharSet = CharSet.Auto)]
public static extern int HSCAN_OpenCANDevice(IntPtr hWnd, UInt32 nMsg);
调用如下:
int g_iDeviceNum = HS2102CANAPI.HSCAN_OpenCANDevice(this.Handle,HS2102CANAPI.USER);//其中HS2102CANAPI.USER=0x5001
调试时出现了以下情况,F5运行没有问题,但关闭此调试窗体时,总是会出现“指令引用的***内存。该内存不能为“read”。要终止程序,请单击“确定””这样的错误。这是怎么回事呢?