0

ActiveX コントロールの 1 つが登録に失敗します。コンポーネントはコンパイルされますが、実行しようとすると

regsvr32 C:\...\component.ocx

エラー ウィンドウが表示されます。

RegSvr32 "C:...\component.ocx の DllRegisterServer が失敗しました。リターン コード: 0xe0434352".

オペレーティング システムは WinXP で、管理者としてログインしています。

Visual Studio 10 デバッガーでコンポーネントを実行しようとしましたが、ブレークポイントに到達しません。

依存関係ウォーカーは、IESHIMS.DLL、WER.DLL、および MPR.DLL の警告を表示します。

ここで何が起こっているのですか?

ありがとう、ミカ

4

1 に答える 1

0

/GF を設定すると問題が解決することがわかりました ([プロジェクト] -> [プロパティ] -> [C/C++] -> [コード生成] -> [文字列プーリングを有効にする])。

私の疑いは、コンポーネントが使用するシンボルが多すぎる (>64k) ことです。これは、Regasm.exe を実行したときに表示されたエラー メッセージで見つけたものです (上記のコメントを参照)。解決されたと思われる文字列プーリングで。

Regasm.exe を使用するように変更する必要はありませんでした。引き続き、コンポーネントを regsvr32.exe に登録します。

于 2012-06-13T13:59:51.243 に答える