0

COM オブジェクトを操作しようとすると、ワークステーションで次のエラーが発生します。

タイプ 'System.Runtime.InteropServices.COMException' の未処理の例外が CarteGraphInterface.exe で発生しました

追加情報: 次のエラーが原因で、CLSID {3963F0F8-6B0C-4A65-90F4-F60168044014} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 80040154。

SOに関するいくつかの 質問を読みましたが、どれも役に立ちませんでした。その ID は、レジストリのどこにもリストされていません。追加する必要がありますか?

更新:もう少し情報。VS2008 で [参照の追加...] を選択すると、そこにオブジェクトが一覧表示され (最初に見つけた方法です)、ソースは *.exe として一覧表示されます。regsrv32 は機能しませんでした。

4

3 に答える 3

2

を使用して COM DLL を登録する必要があるかもしれません。

regsvr32.exe /i dllname

おそらく最初にそれを試して、それが違いを生むかどうかを確認してください.

編集:これを使用するかどうかはわかりませんが、COM Explorer も役立つ可能性があります。この問題の解決に役立つ場合は、試用版を試してください。

編集:エラーコードについてもっと調べようとしましたが、見つけることができる最高のものはthisで、登録されていない DLL でなければならないことを明確にしています。

于 2010-01-28T19:34:36.563 に答える
0

これらの解決策はどれも機能しませんでした。私は、.NET で使用できる API を実際には持っていないと思います (もしあったとしても)。

于 2010-10-21T19:33:56.590 に答える
0

プロジェクトへの参照をどのように追加しましたか? COM を使用する場合、ほとんどの場合、([参照] ではなく) [COM] タブで参照を追加する必要があります。これにより、登録済みオブジェクトへの有効な参照が取得され、新しい相互運用アセンブリが作成されます。ただし、登録に問題がある場合は、COM タブで必要な参照が見つからない可能性があります。

まず、COM コンポーネントが実行可能ファイルに存在するのは非常に奇妙です (可能ではありますが)。おそらく、このコンポーネントは別のアプリケーションからインスタンス化されることになっていないため、すべての登録データが削除されたのでしょうか? このコンポーネントを入手した人に連絡して、登録可能な dll バージョンを要求することをお勧めします。

于 2010-01-28T21:06:23.213 に答える