DirectX 9 SDK安装后在vs2010里编译BaseClasses出错问题解决方法

时间:2021-11-20 20:55:35

打开你的dx的sdk安装目录,例如:

D:/DX90SDK/Samples/C++/DirectShow/

这里就有一个叫baseclasses的工程,为安全起见,请先备份此工程。

1,双击baseclasses.sln打开,提示我们需要转换工程,按提示转换就是了。

2,在工程选项中的c+ +/Command Line中添加/wd4430。解决VC默认整形而VS不支持的问题

3,project->BaseClasses properties->configuration->C/C++ -> General->Additional Include Directories里面的内容(.,../../../../include)删掉

4,在Tools->Options->Projects and solutions->vc++ directories->show directories for里选择include files

然后增加

D:/DX90SDK/Include

D:/DX90SDK/Samples/C++/DirectShow/BaseClasses

D:/DX90SDK/Samples/C++/Common

然后将$(IncludePath);放到上面三个路径的前面,即:

$(IncludePath);D:\DXSDK\Include;D:\DXSDK\Samples\C++\Common\Include;D:\DXSDK\Samples\C++\DirectShow\BaseClasses

注:

        如果VS2010中“工具>选项中的VC++目录编辑功能已被否决”,打开方式非常简单,选中工程,右键“属性”。或者,通过菜单栏的“项目-属性”也可以打开。

        当然以上配置只对当前工程有效。下面介绍一下“一次性配置”的方法,也就是配置一次,以后就不用每次配置了。

1.执行菜单栏“视图——其他窗口——属性管理器”,可以看到“属性管理器”显示在工作区左侧。如下图所示:

DirectX 9 SDK安装后在vs2010里编译BaseClasses出错问题解决方法

2.双击Debug | Win32下的“Microsoft.Cpp.Win32.user“,在弹出的配置框中配置。这个设置是对所有工程有效的。你可以打开其他的工程或者新建新的工程,可以看到都继承了此配置

5,打开project->BaseClasses properties->configuration->C/C++->Language->Force Comformance in For Loop Scrope设置为No。解决VC中for循环变量的作用域与VS上不同的问题

6,编译可以通过。Debug,Debug Unicode,Release,Release Unicode都一样修改然后编译生成各自的strmbasd.lib(debug)和STRMBASE.lib(release)。