2

c#で生成された.tlbファイルを介してc++にロードされるcominterop c++​​dllがあります。コンピューターで実行すると正常に動作しますが、フォーマットされたばかりのコンピューターで実行すると、次のようになります。

WindowsError: exception code 0xe0434f4d

.tlbファイルまたはそのdllをシステムに登録するために何かをする必要がありますか?regasm.exeに関する何か?

もしそうなら、regasm.exeをダウンロードして使用することだけが可能ですか?

4

1 に答える 1

3

申し訳ありませんが、これを正しく診断してから100万マイルです。タイプライブラリはコンパイラ用であり、(通常は)実行時に必要ありません。

取得している例外コードは、何が問題になっているのかを示しています。管理対象例外の例外コードです。つまり、C#コードが例外をスローしていて、処理されていません。これはC#コードではかなり一般的ですが、処理方法がわからないという問題が見つかった場合は、ガベージデータの生成を急ぐ代わりにスローします。

これに取り組むための2つの基本的な方法があります。Q&Dアプローチは、マネージモードに切り替えられたデバッガーを使用し、未処理のマネージド例外で停止させることです。たとえば、[デバッグ+例外、スロー]チェックボックス。または、メソッド自体にいくつかの診断を追加して、たとえば、catchブロックにエラーを記録することもできます。

Q&Dから始めてください。ほとんどの場合、FileNotFoundのようなばかげたものです。

于 2010-05-24T22:19:40.827 に答える