win7 vs2010 配置directshow

下載DirectShow

http://blog.csdn.net/nvidiacuda/article/details/7801173


由於現在directShow沒有和direcxtx一起發佈,而是和windows sdk 打包發佈了,可以到官網下載最新的windows sdk 開發包。windows sdk 地址:http://www.microsoft.com/download/en/details.aspx?id=8442按系統類型下載。
GRMSDK_EN_DVD.iso x86
GRMSDKIAI_EN_DVD.iso Itanium
GRMSDKX_EN_DVD.iso 64位的amd cpu
如果你安裝的是32位的windows 7,請下載x86
如果你安裝的是64位的windows 7,請下載amd64 



配置DirectShow
下載安裝好之後編譯baseclasses項目,在C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses。以管理員身份選擇不同的編譯環境 (Debug,Debug_MBCS,Release,Release_MBCS)可以得到四個類型的strmbasd.lib,開發項目時選擇相應Debug版本的strmbasd.lib。


在項目中包含(1.選擇任意項目2.切換到屬性管理器3.點擊Debug/Release裏的Microsoft.Cpp.Win32.user)

注意包含順序

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\common

C:\Program Files\Microsoft SDKs\Windows\v7.1\Include
以及lib:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release


編譯錯誤(如果頭文件順序不對,出現如下編譯錯誤):

主要提示如下:
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(80) : error C2061: syntax error : identifier ''CAMSchedule''
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(139) : error C2143: syntax error : missing '';'' before ''*''
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(139) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(139) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(139) : warning C4183: ''GetSchedule'': missing return type; assumed to be a member function returning ''int''
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(178) : error C2143: syntax error : missing '';'' before ''*''
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(178) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(178) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(139) : error C2065: ''m_pSchedule'' : undeclared identifier
1>e:\microsoft sdks\windows\v6.0\samples\multimedia\directshow\baseclasses\refclock.h(166) : error C2227: left of ''->GetEvent'' must point to class/struct/union/generic type
1>        type is ''''unknown-type''''

發佈了11 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章