<noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"><delect id="ixm7d"></delect></rt><noframes id="ixm7d"><rt id="ixm7d"><rt id="ixm7d"></rt></rt><rt id="ixm7d"></rt> <noframes id="ixm7d"><rt id="ixm7d"><delect id="ixm7d"></delect></rt><delect id="ixm7d"></delect><bdo id="ixm7d"></bdo><rt id="ixm7d"></rt><bdo id="ixm7d"></bdo><noframes id="ixm7d"><rt id="ixm7d"><rt id="ixm7d"></rt></rt><rt id="ixm7d"><rt id="ixm7d"></rt></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt> <noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d">

風云天下會攻略范文

2023-09-25

風云天下會攻略范文第1篇

知識普及:

DirectX9.0b(包含b)以下版本才有directshow,自從DirectX9.0c以后就從DirctX中分離了directshow了,所以要用directshow的人要注意,當然你也可以下載安裝extras擴展包來彌補這一缺省。

缺少streams.h的解決方法

從網上下了DirectX 9.0 SDK,運行里面的的BaseClasses的時候出現了N多錯誤,在網上找到了相應的方法。http://blog.csdn.net/cocolovelove/article/details/353258

31. 編譯基類源代碼

BaseClasses編譯生成

路徑:/Samples/C++/DirectShow/BaseClasses

環境:VS2005/VS2008

為了正確編譯,需修改以下文件:

(a) ctlutil.h

D:/DXSDK/Samples/C++/DirectShow/BaseClasses/ctlutil.h

編譯時提示錯誤:

BaseClasses/ctlutil.h(278) : error C4430: 缺少類型說明符假定為 int。注意: C++ 不支持默認 int

改:

//static g_dwLastRefresh = 0;

static DWORD g_dwLastRefresh = 0; //lspmodify

(c) winutil.cpp

d:/DXSDK/Samples/C++/DirectShow/BaseClasses/winutil.cpp

錯誤:

1>./winutil.cpp(2104) : error C2065: “Count”: 未聲明的標識符改:

//for (UINTCount = 0;Count < Result;Count++)

UINT Count; //lspmodify

for (Count = 0;Count < Result;Count++) { //lspmodify

(d) outputq.cpp

d:/DXSDK/Samples/C++/DirectShow/BaseClasses/outputq.cpp

錯誤:

1>./outputq.cpp(664) : error C2065: “iDone”: 未聲明的標識符改:

(這里可能地方與VS報錯不一樣,需要自己向上找一下)

//for (longiDone = 0;

long iDone; //lspmodify

for (iDone = 0; //lspmodify

在DirectShow 8.0的SDK里面就看到有下面的頭文件,在我裝的是9.0的,沒有找到這些文件。所以編譯的時候修改完上面的就可以通過了。但要是裝8.0的話就要修改了。

(我是到這部截至了因為我下載的是DirectX9.0b extras,所以如果您與我相同請直接向下看藍字部分)

2、頭文件修改

(a) winnt.h

d:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include/winnt.h

在該文件頭部添加:

#define POINTER_64 __ptr64 // add by peter lee

(b) vmr9.h

D:/DXSDK/Include/vmr9.h

MixerPref9_RenderTargetRGB= 0x1000,

MixerPref9_RenderTargetYUV= 0x00002000, //lsp add

3、VS2005/VS2008環境配置(一樣的所以就以2008為例)

在vs2008下,選擇菜單 Tools -> Options,左欄選擇Projects and Solutions -> VC++ Directories

在彈出的對話框的"Show directories for"(顯示以下內容的目錄)中選擇Include files(包含文件):文件路徑看你自己安裝的directshow位置

- include:

/Include

/Samples/C++/Common/Include

//我的工程中COMMON沒有include ,我直接添加到C:DXSDKSAMPLESC++COMMON也成功了 /Samples/C++/DirectShow/BaseClasses

/WMFSDK9/include//這個我沒加也可以

...

再在"Show directories for"中選擇 Libraries files(庫文件):

- lib:

/lib

/Samples/C++/Common/Src

/Samples/C++/DirectShow/BaseClasses/Debug_Unicode

//如果沒有編譯BaseClasses不會出現這個文件選項

/Samples/C++/DirectShow/BaseClasses/Release_Unicode

/WMFSDK9/lib//這個我沒加也可以

修改完成啦,哈哈~~~編譯通過了~~ DirectX9.0 只需要做第一步修改就可以了,但8.0就要三步都做完~~~暈倒~~

如果以上修改已經解決你的問題那么恭喜你,如果編譯出現下圖情況,那么恭喜你也成功了,只不過因為你編譯的是lib和.h項目,你應該設置類似capture項目為啟動項目,繼續您后續的編程。

如果后續編程出問題,請向下看

(Debug_Unicode版)

缺少streams.h的解決方法和DirectShow開發環境的搭建

這個問題困擾我兩天了,這是在參考了很多Debug 和Realse 版本的缺少streams.h的方案后,經過參考嘗試后,獲得了成功,現在拿出來供有需要的像做視頻開發方面的人提供參考,絕對可以幫你省很多時間來處理有關DirectShow開發環境的搭建.重新配置一下include和lib以確保正確

1) 安裝directX 9.0b sdk ,我安裝在C盤下的DXSDK

2) 打開安裝目錄下的baseclasses.dsw,進行編譯

其中第(2)是最重點的,下面我就主要詳細說明這步的操作過程

1. 首先在baseclasses工程project-setting-library下設置output file name,設置為

Debug_Unicodestrmbasd_uni.lib,默認的為Debug_Unicodestrmbasd.lib。(這部我沒做)

2. 編譯工程,編譯后會生成Debug_Unicode目錄,里面就含有我們要的strmbasd_uni.lib

庫。把它拷貝到你所要的項目工程目錄下即可。(這部我也沒做)

3. 在你所在的工程中,打開project-setting-link的Object/library modules下添加如下幾

個庫名,strmbasd_uni.libstrmiids.lib winmm.lib//這部我做了,這個VS與VC++不同VS2008是在右擊啟動項目——屬性——鏈接(LINK)——輸入中的依賴附加項中添加的

3)在VC++的Tools/Option/Directory的Include和Library中分別加入

C:DXSDKInclude

C:DXSDKSAMPLESC++DIRECTSHOWBASECLASSES

C:DXSDKSAMPLESC++COMMONINCLUDE//我的工程中COMMON沒有include ,我直接添加到C:DXSDKSAMPLESC++COMMON也成功了

C:DXSDKLib

C:DXSDKSAMPLESC++DIRECTSHOWBASECLASSES Debug_Unicode(*)

4)在編譯你工程前,在ProjectSettingLink 中加入 strmbasd_uni.lib uuid.lib winmm.lib

如果出現:dsound.h": No such file or directory

則在vs目錄下搜索添加到baseclasses工程include目錄下

(著重強調你的VS2008中的windsk必須安裝的比較完整,否則會缺少很多東西,如果沒有在你的VS2008中的安裝包搜索,找到補丁安裝即可)

(以下參考

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2617687&SiteID=1

)

如果出現:dxtrans.h": No such file or directory

則在整個工程中查找#include 的引用處做修改:

在#include 前加四項:

#define __IDxtCompositor_INTERFACE_DEFINED__

#define __IDxtAlphaSetter_INTERFACE_DEFINED__

#define __IDxtJpeg_INTERFACE_DEFINED__

#define __IDxtKey_INTERFACE_DEFINED__

#include

再修改qedit.h 中引用 dxtrans.h 的部分,要求注釋掉

#include "oaidl.h"

#include "ocidl.h"

//#include "dxtrans.h"

#include "amstream.h"

注意:這樣就可以正常編譯連接了,如果以前的的程序還是不行,則 rebuild all 一下即可

如果出現1>LINK : fatal error LNK1181: 無法打開輸入文件“strmbasd_uni.lib”

只能說明你的攝像機的驅動沒裝好。

希望我的整理對您有幫助,我調了兩天,把directX的發展和VS2008的基本配置都弄的比較清楚了感覺收獲很大。如果還有問題也歡迎郵箱mysteryrat@126.com探討

上一篇:公安局長講話稿范文下一篇:國家糧食儲備庫范文

91尤物免费视频-97这里有精品视频-99久久婷婷国产综合亚洲-国产91精品老熟女泄火