■ ★DirevtShow★自作のフィルタをインスタンス化するには?

[Visual C++ Q & A 掲示板] [過去ログの一覧]


うみの 2007/12/18(火) 17:21:23 <初心者>
DirectShowの自作のPUSH型ソースフィルタを作成しました。
graphedtでグラフに追加できることを確認しました。

このフィルタをプログラムからインスタンス化しようと思い、

 CoCreateInstance(CLSID_MySource・・・

としましたが、コンパイル時に「CLSID_MySource' : 定義されていない識別子です。」と怒られてしまいます。

自作のフィルタを扱うには、どのようにすれば良いでしょうか?
コンパイルエラーが出るということは、単純にinclude追加しただけではリンクエラーも出ると思いますので、追加のlib等も教えていただけるとありがたいです。

wclrp ( 'o') 2007/12/18(火) 20:15:13
自分でフィルタを作ったのなら
当然CLSID_MySourceの定義があるから
それをプログラムのどこかコピペで定義すればいい。

定義するためのマクロには
extern宣言するだけのものと
値を定義するものがあるから注意。
定義は1箇所で行えばいい。追加libはいらない。

extern宣言はいくつあってもいいけど
定義が複数あると多重定義でリンクエラーになるかもな。
extern宣言だけで定義がひとつもなければコンパイルは出来るが
リンクエラーになる。

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library