我正在尝试在我的c#windows应用程序中使用c ++类方法
我用这个
[DllImport("ZKNetLib.dll", EntryPoint = "ZK_NET_DEV_SetEventCallBack")]
public static extern int ZK_NET_DEV_SetEventCallBack(int u32Handle, ref OnEventCallBack u32Event, IntPtr pUserData);
Run Code Online (Sandbox Code Playgroud)
导入dll及其方法
但是,在dll方法中还有一些其他方法也被使用,我发现很难找出到底发生了什么.就像在上面导入的那样,dll正在使用"OnEventCallBack"方法.那么,有没有办法在我的Windows应用程序中使用这些c ++类和头文件.
我,通过制作类对象并使用那个命名空间,听说在c ++中使用c#应用程序类.
所以,我想知道应该有任何方法将这些头文件和类用于我的c#应用程序吗?
以下是编辑过的问题
ZK_NET_DEV_SetDataCallBack此函数用于信息数据回调.HI_S32 ZK_NET_DEV_SetDataCallBack(HI_U32 u32Handle HI_ON_DATA_CALLBACK cbDataCallBack,HI_VOID*pUserData);
参数u32Handle [IN]操作句柄cbDataCallBack [IN]信息数据回调函数pUserData [IN]用户数据
回调函数typedef HI_S32(*HI_ON_DATA_CALLBACK)(HI_U32 u32Handle,HI_U32 u32DataType,HI_U8*pu8Buffer,HI_U32 u32Length,HI_VOID*pUserData);
回调函数参数u32Handle操作句柄u32DataType数据类型宏定义值含义ZK_NET_DEV_MOTION_DETECTION 0运动检测报警ZK_NET_DEV_INPUT_ALARM 1输入报警ZK_NET_DEV_KEEP_ALIVE 2心跳包pu8Buffer数据.如果u32DataType的值是ZK_NET_DEV_MOTION_DETECTION,则pu8Buffer存储为HI_S_ALARM_MD.typedef struct {HI_U32 u32Area; //区域HI_U32 u32X; // x坐标HI_U32 u32Y; // y坐标HI_U32 u32Width; //矩形宽度HI_U32 u32Height; //矩形高度} HI_S_ALARM_MD; u32Area的最大值为4.相关数据如下:宏定义值含义ZK_NET_DEV_MOTION_AREA_1 1区域1 ZK_NET_DEV_MOTION_AREA_2 2区域2 ZK_NET_DEV_MOTION_AREA_3 3区域3 ZK_NET_DEV_MOTION_AREA_4 4区域4 u32Length数据长度.如果u32DataType的值为ZK_NET_DEV_MOTION_DETECTION并且在两个区域中生成警报,则u32Length的值为:u32Length = 2*sizeof(HI_S_ALARM_MD)u32DataType用户数据
返回值HI_SUCCESS返回成功操作,HI_ FAILURE返回失败操作.
c# ×1