DirectShow 在VS2005中环境配置
網址:http://blog.cnii.com.cn/?75821/viewspace-24418.html
?
一.DirectShow的環境配置:
本人使用的是VS2005,要使用DirectShow進行編程,需要對環境進行必要的配置。
第一步:對dssdk中的baseclass.sln進行編譯,生成需要的debug和release文件,具體步驟如下:
在VS6中,安裝DirectShow9c版本之后,直接打開BaseClass中的VS6工程baseclasses.dsw文件,直接編譯即可,編譯Debug? Release Debug_Unicode?? Release_Unicode四個版本,都需要進行額外的設置(頭文件或者鏈接庫目錄設置)。
DirectShow的BaseClass中已經帶了VS2005的工程文件baseclasses.sln,在vs2005中打開此文件,提示你進行必要的工程轉換,轉換之后開始編譯,編譯過程一般會出現下面兩個問題:
(1)C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include/winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
(2)error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
(3)error C2065: 'Count' : undeclared identifier
第一類問題的解決:安裝xpsp2,如何將其include目錄包含進去;一般將其放在dshow頭文件之后,放在platsdk目錄之前;
第二類問題的解決:錯誤發生在:operator=(LONG);函數定義中,這是因為在VC6中,如果沒有顯示的指定返回值類型,編譯器將其視為默認整形;但是vs2005不支持默認整形,解決這個問題不能修改每個沒有顯示指示返回值類型的函數地方,可以用wd4430來解決;具體的在工程選項中的c++/Command Line中添加/wd4430即可。
第三個錯誤發生在for循環中,vs6中for循環中定義的變量相當于在for外面定義,可以在for之外地方使用;但是vs2005for循環中定義變量相當于域{}變量,只能在for循環中使用。要解決這個問題,可以通過修改vs2005的工程選項:”Project Option” --– “ C++ ” —--? “Language” --- “Force Comformance in For Loop Scrope” 設置為No即可。
完成上面的設置,BaseClass工程基本可以編譯通過了。
第二步:需要設置相應的配置
在把dxsdk中提供的baseclass編譯通過后,用四種方式編譯,會分別生成四個lib,一般只用到了其中的Debug和Release文件,在tool|option|vc++ directories中包含的files中設置如下。
這里需要加入得include files有三種:
D:/SDK/DXSDK/Include
D:/SDK/DXSDK/Samples/C++/DirectShow/BaseClasses
D:/SDK/DXSDK/Samples/C++/Common/Include
在后邊的library files中也需要增加三到四種的文件:
D:/SDK/DXSDK/Lib
D:/SDK/DXSDK/Samples/C++/DirectShow/BaseClasses/Debug
D:/SDK/DXSDK/Samples/C++/DirectShow/BaseClasses/Release
把以上設置好,基本就可以將DirectShow程序在vs2005環境中編譯通過。
總結
以上是生活随笔為你收集整理的DirectShow 在VS2005中环境配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaIO流实现文件拷贝
- 下一篇: 监控和剖析数据库操作P6Spy,SQL