C# 天敏 SDK3000 二次开发时出的问题?? 求解

 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的时候老是出问题???

 

希望大家帮帮我,太难拉,搞拉两个星期,都没什么气色 ,月底工期就满拉,急求助

你可能感兴趣的:(C# 天敏 SDK3000 二次开发时出的问题?? 求解)