本文要解决的问题:
1.
2.
我是编程菜鸟一枚,为了干干净净地配置环境还重装了系统。其中出现的各种问题是得益于网上各个大神们的经验总结才得以解决,小女在此做个汇总和总结,希望将来能对像我这样的人有所帮助。
如有不当之处,还请多多指教。
在WIN7系统下正常使用VC++6.0,解决open file和 add file to project出错的问题
这个问题可参考http://club.topsage.com/thread-2279554-1-1.html
(1)
(2)
第一步:在网上搜索下载FileTool.dll文件
第二步:把FileTool.dll文件拷贝至 C:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns 文件夹下
第三步:在cmd下手动注册该dll文件:regsvr32 "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns\FileTool.dll"具体方法为:开始→运行→输入regsvr32"C:\Program Files\Microsoft
第四步:打开VC6,右击工具栏,自定义→附加项和宏文件,选中 FileTool Developer Studio Add-in 附加项
这个时候就会出现 A 和 O 的文件栏按钮,表示Add File To Project 和Open今后再打开文件/工程或是添加文件到工程的时候,用这两个按钮,不要用VC6默认的了。这样就不会再出问题了。
配置DirectShow,编译出debug和release版本的strmbasd.lib和STRMBASE.lib文件
开始我用的Microsoft DirectX 9.0 SDK (Summer 2004)版本,因为据说这是最后一个DirectX sdk带有DirectShow的版本了,但是这个版本不提供能够用VC6.0打开的baseclasses.dsw,只有将baseclasses.sln转换为baseclasses.dsw才能编译。而在编译过程中,会产生错误:
error C2146: syntax error : missing ';' before identifier 'HSEMAPHORE'
fatal error C1004: unexpected end of file found
这两条错误,定位到strmif.h文件是这条语句
typedef double REFTIME;
typedef DWORD_PTR HSEMAPHORE;
typedef DWORD_PTR HEVENT;
这个问题我没有找到解决办法,于是重新下载了9.0b版本的sdk,这个版本是适用于VC6.0环境的,里面带有可直接编译的dsw文件。但在编译之前,要在网上下载一个wmstub.lib文件,放在C:\Program Files\Microsoft Visual Studio\VC98\MFC\Lib下,然后开始编译。
编译过程:
打开baseclasses.dsw
工程→设置→library→Win32 Debug设置文件名:Debug\strmbasd.lib→Win32 Release设置文件名Release\STRMBASE.lib→确定
组建→批组建→勾选BaseClasses—Win32 Debug和BaseClasses—Win32 Release→组建
执行完以上步骤后,则在BaseClasses文件下生成Debug和Release文件夹,里面分别含有strmbasd.lib和STRMBASE.lib文件。
确认安装了MicroSoft SDK后可以把将DirectX SDK的Include和Lib目录配置到VC的系统目录中了。
配置方法:
打开VC,工具→选项→目录→目录下选include files→路径如下(安装路径不同会略有不同):
D:\Program Files\DXSDK90b\Include
D:\Program Files\DXSDK90b\Samples\C++\DirectShow\BaseClasses
D:\Program Files\DXSDK90b\Samples\C++\Common
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
目录下选library files,路径如下:
D:\PROGRAM FILES\DXSDK90B\LIB
D:\PROGRAM FILES\DXSDK90B\SAMPLES\C++\DIRECTSHOW\BASECLASSES\DEBUG
D:\PROGRAM FILES\DXSDK90B\SAMPLES\C++\DIRECTSHOW\BASECLASSES\RELEASE
D:\PROGRAM FILES\MICROSOFT PLATFORM SDK\LIB
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB
以上就是DShow的配置过程,接下来可以制作播放器了。