「IntelliSense:ソースファイルを開けません」の対処について

[戻る]
紅' 2011/01/05(水) 13:22:28
教えてください。

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 定義を設定

結果、コンパイルは正常に行なえ、作成したプログラムも
正常に動作しているようなのですが、冒頭の問題が生じています。
新規のプロジェクトを作成して同じ設定をしても、結果は変わりませんでした。

コンパイルは正常にできるので、気にしなければそれでよいようにも
思えるのですが、非常に気になります。

お心当たりがございましたら、ご教示ください。お願いいたします。

以上です。

hirocco 2011/01/05(水) 15:45:17
私はqedit.hは何箇所かいじってプロジェクト内に作っちゃいましたねぇ
派生廻りとdxtrans.hのインクルード関係がちょっと嫌がるみたいですね
って、VS2008での話しなんですけど、
移行前はVS2008でそのまま使えたんですか?

ちょっと不思議…

えーと 2011/01/05(水) 16:39:12
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

えーと 2011/01/05(水) 16:48:25
別手段なので
本題の解決にはなりませんが...

ITO 2011/01/05(水) 18:39:54
> 別手段なので
> 本題の解決にはなりませんが...
ちょっとぐぐってみる限りでは、えーとさんの手段をすすめていますね。

紅' 2011/01/06(木) 11:11:37
[[解決]]
返信をありがとうございます。
遅くなり申し訳ありません。

hiroccoさま。

はい。
移行前の環境では dxtrans.h のダミーを作ってしのいだほかは
問題なく使用できていました。
おそらく 2010 でインテリセンスのチェックが厳しくなった結果なのだろうとは
思うのですが。不思議な現象ではあります。


えーとさま。
ITO さま。

ご提示いただいた方法を確認しました。
安全に使用できれば問題ないので、この方法を利用させていただきます。
というか、こういうやり方もあったのですね。
まだ少し試行錯誤していますが、たぶん乗り切れると思います。


以上で解決とさせていただきます。
ありがとうございました。

hirocco 2011/01/06(木) 13:28:50
存在しなくなった dxtrans.h をインクルードしてたり、
IDxtCompositor,IDxtAlphaSetter,IDxtJpeg,IDxtKeyの継承関係が変わっていたりして
て、
qedit.h は問題が付き物ですよねぇ

#importで参照するにしても、exclude しなきゃいけなかったり、多重定義が発生したり
するし、

SampleGrabber,IID_ISampleGrabberCB,IID_ISampleGrabber,ISampleGrabberCB,ISampleG
rabber
の再宣言っていうのも楽じゃないよねぇ

DirectShowってDirectXじゃなくなったんだから、Directなんて言葉外しちゃって、上位
互換でxxxShowなんて別の名前で作り直して、もっと使いやすくなるといいのにって思い
ますよ

って最新使えば問題ないとか、そういうのあったりします?
それか、もっと素敵な方法とかあったりしてとか、考えちゃいますよ

紅' 2011/01/07(金) 09:05:56
むしろ Microsoft は DirectShow 自体をなかったことにしたいんじゃないかと
思ってみたりします。w

でも便利だから手放せないんですよね。
非公開の技術で代替策があったりしそうなのですが。。。

えーと 2011/01/07(金) 10:51:09
> むしろ Microsoft は DirectShow 自体をなかったことにしたいんじゃないかと
> 思ってみたりします。w
どちらかというと、Media Foundationに統一したいのかもと思っています。

ただ、XPで動かないから手を出しづらいんですよねぇ。
# Windows2000でも動かすようにしてくれと言うユーザがまだいるぐらいですし。w
# 会社ではXPなので、これ使ってプログラムできない^^;

http://blogs.msdn.com/b/hiroyuk/archive/2009/05/25/9639698.aspx

古いスレッドには追加発言できません。