由于将系统升级到了Windows 8, 而Windows 8 SDK已经集成了DirectX SDK,且不包含DX9及之前的头文件和库文件,如果想编写DX9程序则需要安装DirectX SDK,我安装的是DirectX SDK的最后一个单独分发包-Microsoft DirectX SDK (June 2010)。
这样又出现了一个问题,如果编写DX10/11或者Direct2D程序,就会导致有两份头文件及库文件,一份来自Windows 8 SDK,位于C:\Program Files\Windows Kits\8.0\Include,这是随系统安装的,而且是最新版的,编程时建议使用此版,另一份则来自上面安装的DirectX SDK,比就旧。不支持使用。如果不想编写DirectX 9程序,则没必要安装。
Visual Studio改变了project properites的设置方式,如果要为所有的project设置同样的配置,已经不能简单的在project上单击右键并选择属性来操作了,需要使用property manager,具体步骤如下。
在VS菜单中选择VIEW-Property Manager打开项目管理器,这里会列出整个solution包含的所有工程,点击project左侧的小三件,展开debug和release文件夹,可以看到这里有几个property page。
其中Microsoft.cpp.Win32.user是针对当前用户的,也就是说当前用户创建的所有project都将使用此配置,而Application只针对当前project,不会影响其他project。可以双击这两个page来打开属性窗口并进行相关设置。
如果为了使所有的DirectX9程序都使用同样的配置而去修改Microsoft.cpp.Win32.user,结果会导致这个配置会影响到DX10/11程序,因为为了使DX9程序顺利运行,我们势必将DirectX SDK的inlucde路径包含在这个配置中,而这个路径中也包含着DX10/11的头文件。库文件亦如此,这违背了上面使用Windows 8 SDK开发DX10/11程序的原则。
所以我们可以尝试为一类project设定一个配置,在debug folder上单击右键,选择Add new property page,起名为DirectX9,在这个配置里面添加所有和DirectX9程序相关的配置,然后保存一下,以后所有的DirectX9工程只要引用一下这个配置就可以了。
如果配置未生效,请尝试以下方法。
你还可以为DX 10/11程序也定义一个property page。