• ベストアンサー

CoCreateInstanceでエラーになる。

こんにちわ。 いまVC++で開発している初心者です。 CoCreateInstanceという関数の箇所で, 戻り値が"0x80040154 (REGDB_E_CLASSNOTREG) " となってしまいます。 調べると「指定されたクラスが登録データベースに登録されていないか、dwClsContextパラメータで指定されたサーバータイプが登録されていないか、レジストリのサーバータイプ値が不正です。」 ということなんですが, 具体的にはどのような箇所を確認すれば良いでしょうか? 教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

COMについての質問ですね。 戻り値から見ての推測ですが CoCreateInstanceしようとしているCOMオブジェクトが レジストリに登録されていないのではないでしょうか。 例えば、そのCOMオブジェクトがDLLであれば regsvr32コマンドをコマンドプロンプトから実行して 引数に登録したいDLLファイル名を指定します。 登録されました、とメッセージが表示されれば レジストリにCOMが登録されます。 或いは、それが済んでいるのでしたら COMオブジェクトが実装しなくてはならない IUnknownインターフェイスが実装されておらず CoCreateInstanceできない。。。 というオチかもしれません。 CLSID(COMを識別するGUID)が レジストリに登録されてないんじゃないかと思います。 まずは前者のレジストリ登録をお試しください。

tatsurou
質問者

お礼

taranrappuさん 回答ありがとうございます。 ご指摘の通り,CLSIDが崩れていたことが原因のようです。 解決しました。

関連するQ&A

専門家に質問してみよう