C# SDK3000 OCX组件二次开发时出的问题?? 求解
这是动态检测触发条件
private void btnStartTest_Click(object sender, EventArgs e)
{
byte[] bytes = new byte[]{1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,25,25,25,25,25,25,25};
string mapSize = Encoding.ASCII.GetString(bytes);
Int32 iMotionDetect = SDK3000ApiClass.GetMotionDetectDelegate();
axSDK3000.EnableMotionDetect(mapSize, bytes.Length, 10, iMotionDetect);
}
SDK3000ApiClass.GetMotionDetectDelegate();这是获取的指针的结果 如下:
public static Int32 GetMotionDetectDelegate()
{
VCAPrcCbMotionDetectInvoke icPic = new VCAPrcCbMotionDetectInvoke(VCAPrcCbMotionDetect);
return Marshal.GetFunctionPointerForDelegate(icPic).ToInt32();
}
这里是委托的声明
public delegate void VCAPrcCbMotionDetectInvoke(int dwCard, bool bMove, ref int lpContext);
下面是委托实例 ,每次调用的时候总是说 引用的内存为written / read 然后就崩溃拉
不知道是不是我的参数有问题,还是委托转指针用的方法不正确,请大家帮我看看,
月底要交项目,急啊,我的QQ:379446670,邮箱:[email protected]
请大家帮我看看
///
/// 动态检测回调
///
///
///
///
public static void VCAPrcCbMotionDetect(int dwCard, bool bMove, ref int lpContext)
{
MessageBox.Show("MessageBoxShow!");
}
*******************************************************************************************
下面是使用DLL的方式
*******************************************************************************************
Com的方法不行我就改用C++ DLL调用的方法,但是结果还是在这里出问题
public static int MotionDetectI(int nCards, bool bEnaDetect, byte[] pAreaMap, long nSizeOfMap, long nPersistTime, ref string lpContext)
{
VCAPrcCbMotionDetectInvoke icPic = new VCAPrcCbMotionDetectInvoke(VCAPrcCbMotionDetect);
return VCAEnableMotionDetect(nCards, bEnaDetect, ref pAreaMap,
nSizeOfMap, nPersistTime,ref lpContext, icPic);
}
[DllImport("sdk3000_7130.dll")]
public static extern int VCAEnableMotionDetect(int nCards, bool bEnaDetect,ref byte[] pAreaMap, long nSizeOfMap, long nPersistTime,ref string lpContext, VCAPrcCbMotionDetectInvoke Tp);
public delegate void VCAPrcCbMotionDetectInvoke(int dwCard, bool bMove, ref int lpContext);
///
/// 动态检测回调
///
///
///
///
public static void VCAPrcCbMotionDetect(int dwCard, bool bMove, ref int lpContext)
{
MessageBox.Show("MessageBoxShow!");
}
Callback的时候老是出问题???
希望大家帮帮我,太难拉,搞拉两个星期,都没什么气色 ,月底工期就满拉,急求助