2017-05-23 27 views
0

こんにちは私はVBで小さな知識があるので、私を助けてください。私のスキャナにアクセスできるプログラムを実行すると、 "AccessViolationExeption was unhandled"エラーが発生しました "保護されたメモリを読み書きしようとしましたが、これは他のメモリが壊れていることを示していることがよくあります。私はあなたがスキャナを閉じたときに例外を持っていることを理解しているあなたのメッセージとコードからVisual Basic with Twainアプリケーション

Public Sub CloseSource() 
     Try 
      Dim rc As TwRC 
      If Not Equals(SelectedDataSource.Id, IntPtr.Zero) Then 
       Dim guif As TwUserInterface = New TwUserInterface() 

       ' tell the data source to disable its user interface 
       rc = DS_Userif(appid, SelectedDataSource, TwDG.TwDG_Control, TwDAT.TwDAT_UserInterface, TwMSG.TwMSG_DisableDS, guif) 

       ' tell the device manager to release the source 
       rc = DSM_Ident(appid, IntPtr.Zero, TwDG.TwDG_Control, TwDAT.TwDAT_Identity, TwMSG.TwMSG_CloseDS, SelectedDataSource) 

       ' set the pointer to zero 
       SelectedDataSource.Id = IntPtr.Zero 
      End If 
     Catch ex As Exception 

     End Try 

    End Sub 

答えて

-1

は、ここに私のコードです。私は、スキャナが閉じられる準備ができていないので例外があると思います。スキャナが正しい状態で閉じていることを確認してください。

敬具、アレクサンダー

1
<StructLayout(LayoutKind.Sequential, Pack:=2)> Public Class TW_USERINTERFACE 
    Public ShowUI As Short ' TW_BOOL 
    Public ModalUI As Short ' TW_BOOL 
    Public hParent As UInt32 ' TW_HANDLE 
End Class 

ブール値は、残念ながら、我々は(真= 1 0 =偽)短い使うので を4バイトさ