我在 Windows CE 中遇到 BarcodeScannerFacade 的问题。我有一个应用程序,客户可以在其中创建一个包含数据和图片的“案例”。我正在尝试更新它,让客户能够使用条形码扫描仪扫描条形码。
现在,第一个案例结束得很好,没有问题,但是当我开始第二个案例时,我不能再拍照了,因为它会抛出一个“未知错误”的异常。(它发生在调用 CameraCaptureDialog.ShowDialog() 方法之后)
经过一番研究,我发现我必须处理barcodeScanner,因为它会以某种方式干扰CCD。
这就是我实例化 BarcodeScanner 的方式:
barcodeScanner = BarcodeScannerFacade.GetBarcodeScanner();
barcodeScanner.BarcodeScan += new BarcodeScanner.BarcodeScanEventHandler(barcodeScanner_BarcodeScan);
因此,鉴于上述研究,我在我的代码中加入了以下几行:
if (barcodeScanner != null)
{
barcodeScanner.Dispose();
}
唯一的问题是它在被调用时死于 NullReferenceException。调试器有以下消息:“没有为任何调用堆栈帧加载符号。无法显示源代码。” “NullReferenceException 未处理”堆栈跟踪如下:
- MyLibrary.SymbolBarcodeScanner.symbolReader_ReadNotify()
at TASK.Invoke()
- System.Windows.Forms.Control._InvokeAll()
- System.Windows.Forms.Control.WnProc()
- System.Windows.Forms.Control._InternalWnProc()
- Microsoft.AGL.Forms.EVL.EnterMainLoop()
- System.Windows.Forms.Application.Run()
- MyProgram.Program.Main()
一旦我删除了barcodeScanner.Dispose() 行,它就不会出现异常,但话又说回来,我不能再拍照了。
任何帮助,将不胜感激。
提前致谢, Rockbag