教えてください。
WindowsXP + VS2010 で Win32 プログラムを作成します。
DirectShow を使用するため qedit.h をインクルードすると、
エラー一覧のタブに以下のメッセージが表示され、当該行には
赤い波線の下線が表示されます。
IntelliSense:ソースファイルを開けません qedit.h
もともとは VS2008 で作成していたプログラムを 2010 に移行しているところです。
VS2008 の環境では問題はありませんでした。
ほかのインクルードファイルでは問題は生じていません。
VS2010 では WindowsSDK 7.0 を参照しているようで、そのままでは
qedit.h を参照できないため以下の設定を行なっています。
・%ProgramFiles%\\Microsoft SDKs\Windows\v6.1\Include を
VC++ ディレクトリのインクルードディレクトリに追加
・qedit.h で参照している DxTrans.h がなくてエラーとなるため、
当該ファイルを作成してこの中で必要?な define 定義を設定
結果、コンパイルは正常に行なえ、作成したプログラムも
正常に動作しているようなのですが、冒頭の問題が生じています。
新規のプロジェクトを作成して同じ設定をしても、結果は変わりませんでした。
コンパイルは正常にできるので、気にしなければそれでよいようにも
思えるのですが、非常に気になります。
お心当たりがございましたら、ご教示ください。お願いいたします。
以上です。
私はqedit.hは何箇所かいじってプロジェクト内に作っちゃいましたねぇ
派生廻りとdxtrans.hのインクルード関係がちょっと嫌がるみたいですね
って、VS2008での話しなんですけど、
移行前はVS2008でそのまま使えたんですか?
ちょっと不思議…
qedit.hを使わず、
#import libid:78530B68-61F9-11D2-8CAD-00A024580902
でいけませんか?
これで、
qedit.tlh
qedit.tli
が出来ます。
これを使えばできそうな感じですが...
参考URL
http://social.msdn.microsoft.com/Forums/en-
US/windowsdirectshowdevelopment/thread/2ab5c212-5824-419d-b5d9-7f5db82f57cd
別手段なので
本題の解決にはなりませんが...
> 別手段なので
> 本題の解決にはなりませんが...
ちょっとぐぐってみる限りでは、えーとさんの手段をすすめていますね。
返信をありがとうございます。
遅くなり申し訳ありません。
hiroccoさま。
はい。
移行前の環境では dxtrans.h のダミーを作ってしのいだほかは
問題なく使用できていました。
おそらく 2010 でインテリセンスのチェックが厳しくなった結果なのだろうとは
思うのですが。不思議な現象ではあります。
えーとさま。
ITO さま。
ご提示いただいた方法を確認しました。
安全に使用できれば問題ないので、この方法を利用させていただきます。
というか、こういうやり方もあったのですね。
まだ少し試行錯誤していますが、たぶん乗り切れると思います。
以上で解決とさせていただきます。
ありがとうございました。
存在しなくなった dxtrans.h をインクルードしてたり、
IDxtCompositor,IDxtAlphaSetter,IDxtJpeg,IDxtKeyの継承関係が変わっていたりして
て、
qedit.h は問題が付き物ですよねぇ
#importで参照するにしても、exclude しなきゃいけなかったり、多重定義が発生したり
するし、
SampleGrabber,IID_ISampleGrabberCB,IID_ISampleGrabber,ISampleGrabberCB,ISampleG
rabber
の再宣言っていうのも楽じゃないよねぇ
DirectShowってDirectXじゃなくなったんだから、Directなんて言葉外しちゃって、上位
互換でxxxShowなんて別の名前で作り直して、もっと使いやすくなるといいのにって思い
ますよ
って最新使えば問題ないとか、そういうのあったりします?
それか、もっと素敵な方法とかあったりしてとか、考えちゃいますよ
むしろ Microsoft は DirectShow 自体をなかったことにしたいんじゃないかと
思ってみたりします。w
でも便利だから手放せないんですよね。
非公開の技術で代替策があったりしそうなのですが。。。
> むしろ Microsoft は DirectShow 自体をなかったことにしたいんじゃないかと
> 思ってみたりします。w
どちらかというと、Media Foundationに統一したいのかもと思っています。
ただ、XPで動かないから手を出しづらいんですよねぇ。
# Windows2000でも動かすようにしてくれと言うユーザがまだいるぐらいですし。w
# 会社ではXPなので、これ使ってプログラムできない^^;
http://blogs.msdn.com/b/hiroyuk/archive/2009/05/25/9639698.aspx