2010-07-28 12:46:26| 分类: DirectShow | 标签: |举报 |字号大中小 订阅
我在运行 DirectShow 自带的程序时,发现有的程序在链接时出错。
有错误的例子及错误提示如下。
例子AudioCap、DMOEnum、SysEnum、Mapper、StillView、PlayDMO、CompressView、
Jukebox、StillCap、Blender、VMRMix、Blender9、VMRMulti。
LINK : fatal error LNK1104: cannot open file "mfc42ud.lib"
例子AudioBox。
LINK : fatal error LNK1104: cannot open file "uafxcwd.lib"
例子PlayWndASF、ASFCopy。
LINK : fatal error LNK1104: cannot open file "..\..\common\wmstub.lib"
软件环境是 DirectX 9.0 SDK 和 Visual C++ 6.0。DirectX选择的是Debug安装模式。
我已经按照陆其明老师的《DirectShow实务精选》的要求,编译了基类源代码,生成了strmbasd.lib。
也配置了Include目录。
与书中不同的是,我在配置Lib目录时,
书上要求的配置为:
C:\DXSDK\Lib
C:\DXSDK\SAMPLE\C++\DIRECTSHOW\BASECLASSES\DEBUG
C:\DXSDK\SAMPLE\C++\DIRECTSHOW\BASECLASSES\RELEASE
C:\PROGRAM FILES\MICROSOFT SDK\LIB (在勘误表中已经去掉这一行)
C:\Program Files\Micrsoft Visual Studio\VC98\LIB
C:\Program Files\Micrsoft Visual Studio\VC98\MFC\LIB
根据我的安装路径,我的配置为:
D:\Program Files\DXSDK\Lib
D:\PROGRAM FILES\DXSDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\DEBUG_Unicode
D:\Program Files\Microsoft Visual Studio\VC98\LIB
D:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB
不知道问题出在那里。希望陆老师和各位高手指点一下,我是新手。
================================================
今天终于找到答案了。原来是缺少支持Unicode的文件;MFC安装的时候,默认是不安装支持Unicode的相关文件的。
在vc的安装盘上有,在vc98\MFC\Lib\下, 还需要dll,在vc98\Debug下。
把lib放到vc的mfc\lib下,dll放到windows\system32下。
参考网页:http://coosign.bokee.com/5547319.html
希望对遇到同样问题的朋友有所帮助
==============================
这个问题我也说了多少次了:在编译baseclasses生成strmbase.lib的时候,项目要选择debug而不是debug_unicode。
评论