VC++を使っているのでここに書きこまさせて下さい。
ATLを使ってプログラムを組んでいるのですが、わからないことがあります。

まず「ATL COM ウィザード」で雛型を作成しました。
その後「ATLオブジェクトの新規作成」でCFooクラスを「シンプルオブジェクト」を選択して作りました。
そのCFooクラスにIExtractIconを継承させようとしているのですが、うまくいきません。

class ATL_NO_VTABLE CFoo :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CFoo,&CLSID_Foo>,
public IDispatchImpl<IFoo, &IID_IFoo, &LIBID_FOOLib>,
public IExtractIcon
{/* 長いので省略します */};

このようにCFooを宣言しているのですが、

'CComObject<class CFoo>' : 抽象クラスあるいは構造体のオブジェクトが宣言されています。

というエラーが出てしまいます。
どのようにすれば解決できるのでしょうか?
よろしくお願いします。

A 回答 (1件)

エラーの意味はご存知の通りです。


つまり実装していないインターフェイスがあるために、抽象クラスが
抽象クラスのままなのでしょう。
IExtracticonの純粋仮想関数は実装していますでしょうか?
GetIconLocationとExtractの二つを実装してみて下さい。
詳細はMSDNをどうぞ。

この回答への補足

IExtracticonの純粋仮想関数は実装しています。
MSDNも調べましたが該当する項目を発見できませんでした。

補足日時:2001/01/09 15:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング