VS 2005做Filter时碰到的一系列问题

2011-03-05 13:18:03

由于系统环境是Win7,所以所有的DirectShow基类代码已经移到Windows SDKs中了,如我的目录在:E:/Microsoft SDKs/Windows/v7.0/Samples/multimedia/directshow/baseclasses,编译时debug版本和release版本生成的lib文件名字是不同的,前者为strmbasd.lib,后者为strmbase.lib。得把生成的lib文件添加的项目引用中.

还有一个问题是,VS 2005以前,基本上都引用了 largeint.lib,但VS2005没有这个lib了,只要删除此引用即可。但这样还不行,简单删除后,肯定编译不过的,好多CLSID都显示未定义,此时看下面的解释:

在应用strmbase.lib的时候还要注意,在VS2005之前的版本中只需包括此库即可,但在VS2005时就不行了,甚至连基本的CLSID都找不到,事实上在链接时要加上:STRMBASE.lib strmiids.lib winmm.lib dmoguids.lib。这样应用程序编译才能通过。

还有最麻烦的就是工程include lib 引用的位置次序,一不留神,放错了位置,会出现好多的fatal error,其实仅仅是一些includelib的次序问题,下面是一个参考:

include files:

$(VCInstallDir)PlatformSDK/include

E:/Microsoft SDKs/Windows/v7.0/Include

$(VCInstallDir)PlatformSDK/common/include

E:/Microsoft SDKs/Windows/v7.0/Samples/multimedia/directshow/baseclasses

$(VCInstallDir)include

$(VCInstallDir)atlmfc/include

$(FrameworkSDKDir)include

 library files:

$(VCInstallDir)lib

$(VCInstallDir)atlmfc/lib

$(VCInstallDir)atlmfc/lib/i386

$(VCInstallDir)PlatformSDK/lib

$(VCInstallDir)PlatformSDK/common/lib

$(FrameworkSDKDir)lib

$(VSInstallDir)

$(VSInstallDir)lib

E:/Microsoft SDKs/Windows/v7.0/Lib

注意:以上仅为32位设置

 

posted @ 2011-03-05 13:08  rlandj  阅读(264)  评论(0编辑  收藏  举报