みなさん、こんばんは。
Windows Mobile 6.5 を実行しているデバイスにインストールされているソフトウェアに取り組んでいます。一部は、デバイスのカメラを適切に使用しています。私の状況では、CameraCaptureDialog を次のように使用したいと考えています。
Dim cameraCaptureDialog As New CameraCaptureDialog()
cameraCaptureDialog.Owner = Me
cameraCaptureDialog.Mode = CameraCaptureMode.Still
If cameraCaptureDialog.ShowDialog() = DialogResult.OK AndAlso cameraCaptureDialog.FileName.Length > 0 Then
Dim sFileNameExt As String = ""
Dim sFileDir As String = ""
Dim sPicsDir As String = ""
Dim sFileSource As String = ""
sFileSource = Path.GetFullPath(cameraCaptureDialog.FileName)
sFileDir = Path.GetDirectoryName(cameraCaptureDialog.FileName)
sFileDir = Path.GetPathRoot(cameraCaptureDialog.FileName)
sFileNameExt = Path.GetExtension(cameraCaptureDialog.FileName)
Dim fs As New FileStream(sFileSource, FileMode.OpenOrCreate, FileAccess.Read)
Dim ImgArtikel(CType(fs.Length, Int32)) As Byte
fs.Read(ImgArtikel, 0, CType(fs.Length, Int32))
fs.Close()
functions.ConnectLocalDB(functions.localconn)
Dim cmd As SqlCeCommand = functions.localconn.CreateCommand()
cmd.CommandText = "UPDATE table SET img_Photo=@imgArt " 'assign the newly made image to db-entry
cmd.Parameters.Add("@imgArt", SqlDbType.Image)
cmd.Parameters("@imgArt").Value = ImgArtikel
cmd.ExecuteNonQuery()
cmd.Dispose()
If File.Exists(sFileSource) Then File.Delete(sFileSource) 'delete photo after updating db
End If
cameraCaptureDialog.Dispose()
これは初めて (エミュレーターとデバイスの両方で) 正常に動作しますが、同じイベントを開始すると、ソフトウェアがクラッシュします。デバッグ時に例外は発生しません。ShowDialog() (4 行目) でクラッシュするだけです。
ここで何が悪いのか誰か知っていますか?