「クラスが登録されていません」COM 例外 (REGDB_E_CLASSNOTREG) の修正
このガイドでは、COM クラス インスタンスの作成時に発生する一般的な COM エラー「クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))」について説明します。 通常、根本的な原因は、Windows レジストリに不適切に登録された COM コンポーネントです。
解決策:
トラブルシューティング手順の内訳は次のとおりです:
ビルド アーキテクチャの確認: プロジェクトのビルド アーキテクチャがランタイム環境と一致していることを再確認します。 64 ビット システムを実行している場合は、アセンブリが x64 用にコンパイルされていることを確認してください。 64 ビット環境でエラーが解決しない場合は、x86 (32 ビット) ビルド構成に切り替えてみてください。
COM コンポーネントを再インストールします: アーキテクチャに問題がない場合は、次のステップとして COM コンポーネントを再インストールします。 インストールのレジストリ登録の側面に細心の注意を払い、インストール手順に注意深く従ってください。
手動レジストリ登録: regsvr32
コマンド ライン ツールを使用して、COM コンポーネントを手動で登録します。 管理者特権でコマンド プロンプトを開き (管理者として実行)、次を実行します。
<code>regsvr32 "<path_to_com_dll>"</code>
忘れずに <path_to_com_dll>
を COM DLL への完全なパスに置き換えてください。
依存関係チェック: COM コンポーネントに不足している依存関係を特定するには、Dependency Walker などの依存関係分析ツールを使用します。 必要なアセンブリがすべて正しく登録されていることを確認してください。
権限とサーバー構成: コードを実行するユーザー アカウントに、COM サーバーにアクセスするために必要な権限があることを確認します。 また、COM サーバーの構成を見直し、ファイアウォール ルールとネットワーク設定に潜在的な制限がないか確認してください。
これらのソリューションを体系的に適用することで、「クラスが登録されていません」エラーを解決し、COM クラスを正常にインスタンス化できるはずです。
以上が「クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))」COM エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。