在MinGW下使用DShow的方法
用MinGW編譯DShow的東西,經常遇到沒找到IBaseFilter的問題。本質上是MinGW的w32api并沒有提供完整的DShow頭文件所致。經過一番折騰,得到了下面的解決方案:
1. 從http://sourceforge.net/projects/mingw-w64/下載mingw-w64-headers,我這里用的是mingw-w64-headers-20100717.tar.xz
2. 把mingw-w64-headers\include目錄下的strmif.h、rpcndr.h、uuids.h、ksuuids.h、control.h拷貝到MinGW\include,覆蓋原有文件。
3. 打開strmif.h,刪掉所有”__MINGW_EXTENSION”。
4. 打開rpcndr.h,刪掉所有”__MINGW_EXTENSION”,并在第81行”typedef int ssize_t;”的前后分別加上”#ifdef _SSIZE_T_”和”#endif”。
5. 打開vmr9.h,查找”MixerPref9_RenderTargetMask = 0x000FF000″一行,在后面加上”,”;查找”wchar_t szDescription[512]“,在后面加上”;”。(這個最莫名其妙了,原作者居然都沒加)
6. 打開Windows SDK的wmr9.h,把接口都添到MinGW的vmr9.h中。
至此,DShow相關的東西就可以用MinGW編譯了,不再會報缺少接口。
新增和修改過的文件可以在這里下載:
DShow patch for MinGW
轉自http://www.klayge.org
總結
以上是生活随笔為你收集整理的在MinGW下使用DShow的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux重装eclipse_Linux
- 下一篇: 机器学习的练功心法(一)——机器学习概述