Windows CE の BarcodeScannerFacade に問題があります。私は顧客がデータと写真を含む「ケース」を作成できるアプリを持っています。顧客がバーコード スキャナーでバーコードをスキャンできるようにすることで、更新しようとしています。
さて、最初のケースは問題なく終了しましたが、2 番目のケースを開始すると、「不明なエラー」で例外がスローされるため、写真を撮ることができなくなりました。(CameraCaptureDialog.ShowDialog() メソッドが呼び出された直後に発生します)
再調査の結果、CCD に干渉するため、barcodeScanner を破棄する必要があることがわかりました。
これは、BarcodeScanner をインスタンス化する方法です。
barcodeScanner = BarcodeScannerFacade.GetBarcodeScanner();
barcodeScanner.BarcodeScan += new BarcodeScanner.BarcodeScanEventHandler(barcodeScanner_BarcodeScan);
上記の調査を踏まえて、コードに次の行を追加しました。
if (barcodeScanner != null)
{
barcodeScanner.Dispose();
}
唯一の問題は、呼び出されたときに NullReferenceException で終了することです。デバッガーに次のメッセージが表示されます。"NullReferenceException was unhandled" スタック トレースは次のとおりです。
- 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() 行を削除すると、例外で死ぬことはありませんが、もう一度写真を撮ることはできません。
どんな助けでも大歓迎です。
前もってありがとう、ロックバッグ