c#调用dll动态库的问题
三江831 2012-11-13 11:31:27 dll动态库里的函数,但是我在C#程序里声明后,无法调用,说函数不存在!
函数的C++原型如下:
LONG HB_SDVR_Login_Ex_Nvs(
char *sDVRIP,
WORD wDVRPort,
char *sUserName,
char *sPassword,
LPHB_SDVR_DEVICEINFO_EX lpDeviceInfo
);
typedef struct {
BYTE sSerialNumber[SERIALNO_LEN];
BYTE byAlarmInPortNum;
BYTE byAlarmOutPortNum;
BYTE byDiskNum;
BYTE byDVRType;
BYTE byChanNum;
BYTE byStartChan;
BYTE sDvrName[NAME_LEN];
BYTE sChanName[MAX_CHANNUM_EX][NAME_LEN];
} HB_SDVR_DEVICEINFO_EX, *LPHB_SDVR_DEVICEINFO_EX;
我在C#里定义如下:
public struct LPHB_SDVR_DEVICEINFO_EX
{
public byte[] sSerialNumber;
public byte byAlarmInPortNum;
public byte byAlarmOutPortNum;
public byte byDiskNum;
public byte byDVRType;
public byte byChanNum;
public byte byStartChan;
public byte[] sDvrName;
public byte[][] sChanName;
}
[DllImport("7000sdk.dll")]
public static extern long HB_SDVR_Login_Ex_Nvs(string sDVRIP, UInt16 wDVRPort, string sUserName, string sPassword, LPHB_SDVR_DEVICEINFO_EX lpDeviceInfo);