http://www5f.biglobe.ne.jp/~kenmo/program/skinme …
このサイトのコードを動かそうとすると、
>error C2259: 'CAllocateHierarchy' : 抽象クラスをインスタンス化できません。
というエラーが出てしまいます。
抽象クラスというのを初めて聞いたのですが、
どうすればこのエラーを消せるのでしょうか?
No.2ベストアンサー
- 回答日時:
こんにちは。
継承元のIUnknownインターフェースが実装されていないのでは。
http://msdn.microsoft.com/ja-jp/library/cc372741 …
QueryInterface()ですが、ID3DXAllocateHierarchyに対応するGUIDは無い様ですので(恐らくコンポーネントとして公開する場合に自身でGUIDを登録する)、普通にthisポインタを返せば良いと思います。
STDMETHODIMP QueryInterface(REFIID riid, LPVOID* ppReturn)
{
//REFIID(GUID)があれば
//if(IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, /*ID3DXAllocateHierarchyに対応するインターフェースID*/)
//{
//*ppReturn = this;
//this->AddRef();
//return S_OK;
//}
//*ppReturn = NULL;
//return E_NOINTERFACE;
//REFIID(GUID)が無ければ
*ppReturn = this;
this->AddRef();
return S_OK;
}
STDMETHODIMP_(DWORD) AddRef()
{
return ++m_nRefCount;
}
STDMETHODIMP_(DWORD) Release()
{
if(--m_nRefCount)
return m_nRefCount;
delete this;
return 0;
}
ご回答ありがとうございました。
IUnknownインターフェース、
QueryInterface()、
GUID、REFID、
ちょっと今の自分には早すぎた様で、1個1個を調べてるものの
全体像が全く掴めない状況に;
理解できるまでじりじり学習してみようと思います;
ありがとうございました
No.1
- 回答日時:
オーバーライドを前提に作られている純粋仮想メソッドが実装されていないと言うことです。
ID3DXAllocateHierarchyにvirtual宣言されている未実装のメソッドがあって、そのメソッドの実装をCAllocateHierarchy内で行う必要があるのだと思います。
http://www.geocities.jp/ky_webid/cpp/language/01 …
ご回答ありがとうございます。
どうやらクラスに対する理解が相当なってない事を自覚しました。
最低限扱っているだけだったようで;
参考サイトの紹介等、ありがとうございましたっ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- コーヒーメーカー・電気ケトル・電気ポット デロンギ マグニフィカ ESAM1500DKのエラーについて。 使用していたら『ナイブヨゴレ』と『チ 1 2022/07/30 22:15
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- その他(プログラミング・Web制作) Chromeのデベロッパーツール プログラム 2 2022/06/21 20:27
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# 「データが失なわれる可能性...
-
interface,extend,implementの...
-
Javaで下線
-
javaのクラスの分け方について...
-
「継承されたメソッドの可視性...
-
Javaでタスクシステムを作るの...
-
(vba)他のアプリケーションの右...
-
C++ヘッダの肥大化
-
compareToにおける「自然順序付...
-
オブジェクト指向 ボールの衝突
-
publicフィールドの使いどき
-
interfaceとabstract
-
インターフェースとは
-
C言語のプログラムをJavaに
-
インターフェースの利点は?
-
スタックで成績表を作るプログ...
-
抽象クラスとインタフェースの...
-
抽象クラスのエラーが出ます
-
単体テストのテストケースにて...
-
markメソッドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
「ラッパークラス」の存在意義...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
オーバーライドとラッパーの違い
-
C# 「データが失なわれる可能性...
-
【C#】クラスのコンストラクタ...
-
JTextFieldの入力制限
-
c++でのヘッダーファイルの循環...
-
vb.net 自作プロパティの削除に...
-
「継承されたメソッドの可視性...
-
ASP.NETでの共通コードの書き方...
-
Javaのインスタンス化の構文の...
-
Javaで下線
-
メソッドの引数にクラス名を渡す
-
VB DLLプロジェクトについて
-
C#からDLLを呼びたいのですが・...
-
インターフェース型の使い方が...
-
委譲って何ですか?
-
C# 継承の問題で programに示さ...
おすすめ情報