1

Windows XPシステムでは、C#アセンブリでコードを呼び出すMangagedC++ライブラリを作成しています。残念ながら、C#アセンブリでシンボルの参照を開始するとすぐに、マネージC ++ライブラリの実行が次のエラーで失敗します(これをXPクラッシュダイアログからコピーしました)。

EventType : clr20r3
P1 : treeviewdemo.exe
P2 : 0.0.0.0
P3 : 4a5d6d62
P4 : system.windows.forms
P5 : 2.0.0.0
P6 : 4889dee7
P7 : 12fc     
P8 : ac
P9 : system.io.filenotfoundexception    

MangedC++ライブラリは基本的に次のとおりです。

#using "C:\\MyCSharpAssembly.dll";

__declspec(dllexport) void callMangagedCode() {
  ManagedObject ^o = nullptr;
}

'#using'自体は問題を引き起こさないようですが、C#DLLからシンボルを使用し始めるとすぐに、問題が発生します。誰かが何が起こっているのか知っていますか?

このsystem.io.filenotfoundexception部分から、DLLが見つからないように思われますが、どのDLLがどこにあるのかわかりません。

4

3 に答える 3

5

の依存関係はすべてMyCSharpAssembly.dll同じパスで利用できますか? 不明な場合は、C-Sharp アセンブリをILDasmツールにロードして、その依存関係を確認してください。

サニティ チェックとして、この C-Sharp DLL を別の C-Sharp 実行可能ファイルからロードできるかどうかも確認します。

于 2009-07-21T11:07:22.710 に答える
0

C#アセンブリのソースコードにアクセスできますか?デバッガーでマネージC++コードを実行できますか?例外のスタックトレースを確認することは価値があります。これにより、例外が発生したときに何が起こっているかについて、より多くのヒントが得られる可能性があります。

クラッシュは、実行している操作に関連している可能性があります。Aamirが述べているように、他の可能性はC#アセンブリの依存関係かもしれません...

于 2009-07-21T12:47:17.143 に答える