COM 例外の解決: クラスが登録されていません (0x80040154)
COM クラスをインスタンス化しようとすると、「クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))」というメッセージで例外が発生しました。このエラーは、COM コンポーネントがシステム レジストリに登録されていないことを意味します。この問題を解決するには、次の手順に従ってください:
1. アセンブリ アーキテクチャを確認します
COM コンポーネントを対象とするアセンブリが同じアーキテクチャを使用してコンパイルされていることを確認します。 COM コンポーネントを再インストールした後も例外が続く場合は、アセンブリ アーキテクチャを x86 に変更してみてください。
2. COM コンポーネントを登録します
管理者特権でコマンド プロンプトを開き、COM コンポーネントが存在するディレクトリに移動します。次のコマンドを実行してコンポーネントを登録します:
<code>regsvr32 YourComponentName.dll</code>
「YourComponentName.dll」を COM コンポーネントの実際の名前に置き換えます。
3. レジストリ キーへのアクセスを許可します
ログインしているユーザーが、必要なレジストリ キーにアクセスするための十分な権限を持っていることを確認してください。ユーザーに次の所有権を付与します:
<code>HKEY_CLASSES_ROOT\CLSID\{YourComponentGUID}</code>
「{YourComponentGUID}」を COM コンポーネントの GUID に置き換えます。
4. デバッグを有効にする
デバッグを有効にして、より詳細なエラー メッセージを表示します。 Visual Studio で、[デバッグ] メニューを選択し、[プロセスにアタッチ] をクリックします。例外が発生したプロセスにアタッチします。これにより、コードをステップ実行して、エラーの具体的な原因を特定できるようになります。
以上が「クラスが登録されていません (0x80040154)」COM 例外を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。