1

Tessnet2を使用するアプリがあります。Init メソッドを呼び出そうとすると、アプリケーションが失敗します。
失敗はひどいものです - 例外 (ANY) も、エラーの痕跡も、「レポートの送信」ウィンドウさえもありません。アプリのプロセスがちょうど削除されました。

問題のあるコードは次のとおりです。

Recogniser = new Tesseract();
Recogniser.SetVariable("tessedit_char_whitelist", Whitelist);
Recogniser.SetVariable("unlv_tilde_crunching", false);
Recogniser.Init(null, "eng", false); // FAILURE IS HERE

役立つかもしれないいくつかのメモ:

  • Tessnet2 には、Visual C++ 2008 ランタイムが必要です。msvcm90.dll か msvcm80.dll かは不明です。
  • アプリケーションはデスクトップ WPF です。
  • 開発環境: VS 2008 SP、.NET 3.5 SP1
  • 以前は機能していました (SOAP Web サービスを使用するために Web 参照を追加したと思いますが、それを削除しようとしても結果はありませんでした)。
  • 単体テストは完全に機能しており、障害は発生していません

これらの観察から、WPF アプリケーション自体に問題があるように思えます。

私が持っている唯一の情報は、デバッグ中の出力です。

'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\9.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\9.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\9.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'D:\...\bin\Debug\OcrForm.WinApp.vshost.exe', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Core\3.5.0.0__b77a5c561934e089\System.Core.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Runtime.Serialization\3.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel\3.0.0.0__b77a5c561934e089\System.ServiceModel.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Xml.Linq\3.5.0.0__b77a5c561934e089\System.Xml.Linq.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Data.DataSetExtensions\3.5.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\UIAutomationProvider\3.0.0.0__31bf3856ad364e35\UIAutomationProvider.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\WindowsBase\3.0.0.0__31bf3856ad364e35\WindowsBase.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_32\PresentationCore\3.0.0.0__31bf3856ad364e35\PresentationCore.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\PresentationFramework\3.0.0.0__31bf3856ad364e35\PresentationFramework.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.  
The thread 0x1784 has exited with code 0 (0x0).
The thread 0x1144 has exited with code 0 (0x0).
The thread 0x16a4 has exited with code 0 (0x0).
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'D:\...\bin\Debug\OcrForm.WinApp.exe', Symbols loaded.
Step into: Stepping over non-user code 'OcrForm.WinApp.App.App'
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Step into: Stepping over non-user code 'OcrForm.WinApp.App.InitializeComponent'
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\PresentationFramework.Classic\3.0.0.0__31bf3856ad364e35\PresentationFramework.Classic.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
The thread 0x374 has exited with code 0 (0x0).
The thread 0x13cc has exited with code 0 (0x0).
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'D:\...\bin\Debug\OcrForm.dll', Symbols loaded.
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'D:\...\bin\Debug\Commons.dll', Symbols loaded.
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'D:\...\bin\Debug\tessnet2_32.dll', Symbols loaded.
'OcrForm.WinApp.vshost.exe' (Managed): Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e\msvcm90.dll'  

そして、アプリが失敗したときの最後のピース:

The program '[5384] OcrForm.WinApp.vshost.exe: Managed' has exited with code 1 (0x1).

更新:イベント ログを確認しました。「SideBySide」ソースのエントリはありません。この問題に関連するエントリのみを以下に示しますが、残念ながら多くはわかりません。

Event Type: Error
Event Source:   .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID:   5000
Date:       28/10/2009
Time:       4:07:57 PM
User:       N/A
Computer:   ARGO11
Description:
EventType clr20r3, P1 ocrform.winapp.exe, P2 1.0.0.0, P3 4ae7d16c, P4 ocrform, P5 1.0.0.0, P6 4ae1333f, P7 10f, P8 1, P9 system.typeinitialization, P10 NIL.

ヒントをお寄せいただきありがとうございます。

4

2 に答える 2

1

Windows システム イベント ログ ([スタート] -> [設定] -> [コントロール パネル] -> [管理] -> [イベント ビューアー]) を確認します。おそらく、Windows SideBySide マネージャーからのエントリが見つかるでしょう。

出力の最後の行は、SideBySide からの dll が読み込まれたことを示しています。

私は最近同様の問題を抱えていました。イベントログを調べるまで、失敗の原因についてのヒントはありませんでした。

于 2009-11-02T10:05:26.593 に答える
0

私は問題を理解しました。

簡単な回答: SaveFileDialogを使用した後、アプリの作業ディレクトリが変更されました。これにより、Tesseract は関連ファイルを見つけられませんでした。

そのために私がしたことのいくつか:

  1. Tessnet2 を使用する新しい WPF アプリケーションを作成しました。
  2. 開始->まったく同じ方法で失敗しました。
  3. tesseract に必要なファイルを追加し忘れていることがわかりました。
  4. それらを追加しました->アプリが動作し始めました。

アプリケーションに移動するよりも:
tesseract に必要なファイルを確認しました。すべてが整っていて有効です。

したがって、ファイルにアクセスできないことに関連する何かが他にあるはずです。

  1. 権限がありません。
  2. 場所が正しくありません。

最初に確認しました-すべて問題ありません。2 番目に、すべてのファイルがアプリケーションの現在のディレクトリに対して
正しい場所にあることを確認しました。

ポイントを参照してください?? しかし、ファイルはアプリケーションと 同じWORKING DIRECTORY
にあるはずです。

SaveFileDialogを使用した後、作業ディレクトリが変更されました。

ダイアログを使用しない場合、アプリは機能します。
すべての「エラー情報」からこれをどのように理解できるか...
これが誰かの助けになることを願っています。

于 2009-11-04T06:09:42.693 に答える