mobile CCTV,mobile surveillance,police body worn cameras
标题:
紧急!C#集成视频Dll后,安装到其它电脑后,打开视频时报错
[打印本页]
author:
luojingyu
time:
2017-7-4 10:14
标题:
紧急!C#集成视频Dll后,安装到其它电脑后,打开视频时报错
紧急 紧急 紧急 紧急 紧急!
C#集成视频Dll后,在开发人员的电脑上可以正常浏览视频,但安装到其它电脑后,打开视频时报错,今天上午需要去客户地演示,求解求解!
进入系统日志查看,错误如下:
应用程序: MUavRemoteMonitorPlatform.exe
Framework 版本: v4.0.30319
说明: 由于未经处理的异常,进程终止。
异常信息: System.NullReferenceException
在 AircraftVideos.UAVVideo.OpenVideo(System.String, System.String, System.String)
在 MUavRemoteMonitorPlatform.UserControlFile.UCFlyData.MenuItem_Click(System.Object, System.Windows.RoutedEventArgs)
在 System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
在 System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
在 System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
在 System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)
在 System.Windows.Controls.MenuItem.InvokeClickAfterRender(System.Object)
在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
在 System.Windows.Threading.DispatcherOperation.InvokeImpl()
在 System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
在 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
在 MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
在 System.Windows.Threading.DispatcherOperation.Invoke()
在 System.Windows.Threading.Dispatcher.ProcessQueue()
在 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
在 MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
在 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
在 System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
在 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
在 MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
在 System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
在 System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
在 System.Windows.Application.RunDispatcher(System.Object)
在 System.Windows.Application.RunInternal(System.Windows.Window)
在 System.Windows.Application.Run(System.Windows.Window)
在 MUavRemoteMonitorPlatform.App.Main()
相关的视频需要的Dll也在存在于安装目录:
[attach]651[/attach]
以下为打开视频的代码:
public void OpenVideo(string deviceid,string channel,string txtInfo)
{
Pu pu = m_sdkOperator.Session.getPu(deviceid);
int channelNo = pu.getChannelNo(channel);
if (channelNo >= BVCU.BVCU_SUBDEV_INDEXMAJOR_MIN_CHANNEL && channelNo < BVCU.BVCU_SUBDEV_INDEXMAJOR_MAX_CHANNEL)
{
//m_sdkOperator.Dialog.openBrowse(pu, channelNo, panelVideo);
if (m_sdkOperator.Dialog.Count == 16)
{
MessageBox.Show("窗口已全部占用");
return;
}
//multiWindow.monitor[multiWindow.CurrentMonitor].pictureBox1.ContextMenuStrip = contextMenuStripVideo;
//打开浏览*******************************************************************
m_sdkOperator.Dialog.openBrowse(pu, channelNo, multiWindow.monitor[multiWindow.CurrentMonitor].picBox,txtInfo);
}
//multiWindow.monitor[multiWindow.CurrentMonitor].picBox.Invalidate();
}
author:
Mitarai7
time:
2017-7-4 10:28
看了下调用栈,是应用层的一处空引用引起的异常,并不是我们的库程序。请逐步排查应用程序中接口调用的参数安全性。另外发布到其他电脑时,请编译发布版本,有的电脑缺少调试版本的库
author:
luojingyu
time:
2017-7-4 10:37
我们尝试排除过了,我只要注释掉OpenVideo这个方法,就不会出错
欢迎光临 mobile CCTV,mobile surveillance,police body worn cameras (http://bbs.besovideo.com:8067/)
Powered by Discuz! X3.2