ホームページ > バックエンド開発 > C++ > COM アプリケーションの「クラスが登録されていません」例外を修正するにはどうすればよいですか?

COM アプリケーションの「クラスが登録されていません」例外を修正するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-14 11:28:42
オリジナル
598 人が閲覧しました

How to Fix the

COM アプリケーションの「未登録クラス」例外を解決する

COM クラスのインスタンスの作成中に、「クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))」というエラーが発生しました。この例外は、ターゲットの COM クラスがシステムに正しく登録されていないことを示します。

トラブルシューティング:

この問題を解決するには、次の手順に従ってください:

  1. COM コンポーネントを再インストールします: インスタンス化しようとしているクラスに関連付けられている COM コンポーネントをアンインストールし、再インストールします。これにより、必要なレジストリ キーが正しく登録されます。

  2. アセンブリのアーキテクチャが正しいことを確認します。アプリケーションによって参照されるすべてのアセンブリが同じアーキテクチャでコンパイルされていることを確認します。 32 ビット アプリケーションをターゲットにしている場合は、すべてのアセンブリを 32 ビット用にコンパイルする必要があります。 64 ビット アプリケーションをターゲットにしている場合は、すべてのアセンブリを 64 ビット用にコンパイルする必要があります。

  3. COM クラスを手動で登録します: COM コンポーネントを再インストールしても問題が解決しない場合は、regsvr32 ユーティリティを使用して COM クラスを手動で登録できます。管理者としてコマンド プロンプトを開き、次のコマンドを実行します:

    <code>regsvr32 <COM文件路径></code>
    ログイン後にコピー

    <COM文件路径> を、登録しようとしている COM ファイル (.dll または .ocx) への絶対パスに置き換えます。

  4. レジストリ権限の更新: COM クラスのレジストリ キーに適切な権限があることを確認してください。次のレジストリ キーに移動します:

    <code>HKEY_CLASSES_ROOT\<ProgID></code>
    ログイン後にコピー

    <ProgID> は COM クラスのプログラム識別子 (ProgID) です。このレジストリ キーのサブキーの読み取り、書き込み、作成に必要なアクセス許可をアカウントに付与します。

次の手順に従うことで、COM アプリケーションの "クラスが登録されていません" 例外を解決し、COM クラスのインスタンスを正常に作成できます。

以上がCOM アプリケーションの「クラスが登録されていません」例外を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート