利用VS的自定义向导生成C++项目模板(Custom Wizard)
发布:cnwang | 发布时间: 2012年1月3日最近打算研究一下DirectX。于是关注了一下DirectX环境的配置问题。
发现每次新建一个DX项目时,都需要配置一遍项目属性,比较麻烦。于是想通过用项目模板来完成这一工作。如下是整个模板的生成过程。
笔者的环境是Win7下的VS2005
首先在新建项目,项目类型里选择Virtual C++ 自定义向导。填写好名称和位置。位置最好放到“Visual Studio用户项目模板位置”(不知道的可以在VS中,【工具】【选项】【项目和解决方案】里查看位置。)
确定,然后出现自定义应用程序向导。
下一步,填写向导友好名称(会显示在新建项目面板中)。由于这里不需要用户界面,所以去掉勾选“用户界面”。
完成。这时VS会在如下位置生成一些文件:
1. Program Files\Microsoft Visual Studio 8\VC\vcprojects
该目录下会生成三个文件。
一个ico文件。将会显示在新建项目面板中。
一个vsdir文件。定义如何把向导包含的信息呈现给用户。
一个vsz文件。记录项目模板的存放路径。这个路径这是下面要说的第二个位置了。

2 ..\Templates\ProjectTemplates\Virtual C++\DirectX.
即我们在新建此模板时自己指定的位置。这里会生成一个工程。就是当前VS里显示的这个项目。

该项目下有五个文件夹。分别是:
HTML文件、图像文件、杂项文件、模板文件和脚本文件。
HTML文件与图像文件两个文件夹用于存放界面向导的相关文件。这里是非UI的向导,所以这两个文件夹里没有文件。
杂项文件夹里,除了上面介绍的三个文件,还有default.vcproj和Templates.inf第一个文件是用此模板生成项目的项目文件模板,第二个文件,记录用该模板生成的项目里应该包含哪些文件(这里有一些需要注意的地方,该在后面指出)。
模板文件夹。这个文件夹 应该对应到模板项目下的Templates文件夹。即…\Templates\ProjectTemplates\Virtual C++\DirectX\DirectX\Templates。里面包含了利用该模板生成项目时会带进去的文件。
最后一个文件夹,脚本文件夹。只有一个文件,default.js。这个文件是整个模板项目的灵魂。
至此,第一步算是完成了。
第二步我们将根据自己的需要,改造这个项目模板。
1. 修改脚本文件。
Default.js的第一个方法 OnFinish(…)。这个方法应该算是整个脚本的”主函数”。其它的方法,基本就可以顾名思义了。
我们希望新项目里要包含“头文件”“源文件”“资源文件”三个文件夹,分别存放对应的文件。这里就需要修改AddFilters(…)方法,添加过滤组了。添加格式如下:
var group = proj.Object.AddFilter(‘[文件夹名]').Filter = "[过滤格式]";

为了避免每个DX项目都要配置附加目录的麻烦,我们将在项目模板里将附加目录添加进项目。
这里需要修改AddConfig(…)方法。这里将分别配置Debug和Release两种配置。在VCCLCompilerTool配置下面添加AdditionalIncludeDirectories属性项,并配置属性为安装DX的Include文件夹。
在VCLinkerTool 配置下面添加AdditionalLibraryDirectories属性并配置该属性为安装DX的Lib库目录。添加AdditionalDependencies属性项,并配置属性为所需要使用到的lib库,各个库之间用空格分开。添加GenerateDebugInformation属性,关配置为True.

这里需要注意的是,只有项目里添加了C++语言相关的文件(如.h头文件)时,链接器和编译器的属性配置才有效。
2. 修改Templates.inf文件。
这个文件前面做了介绍,文件里包含模板需要带出的文件的文件名。
这里新建一个测试文件datongyi.cpp,关将文件名加入到inf文件里。


至此模板基本上配置完成了。
我们新建一个项目来测试这个模板。

但是VS给出了下面的对话框:无法访问所需文件的数据,因为它处于僵停状态

然后是:未能完成操作。未指定的错误
这是什么原因呢?
我们打开 \Templates\ProjectTemplates\Virtual C++\DirectX\DirectX\Templates\2052文件夹,发现该文件夹里并没有包含datongyi.cpp文件。
将外层的datongyi.cpp文件剪切到2052文件夹,用模板再次新建一个项目,调试成功!

- 相关文章:
- 1.石家庄婚纱礼服
- http://www.ass888.com/
- 过来看一下来了啊
- 2012-1-5 13:36:01 回复该留言
- 2.影楼网销培训
- http://www.xuk.com.cn/
- 过来看看来了哈
- 2012-1-16 14:11:29 回复该留言
- 3.影楼培训
- http://www.xuk.com.cn/
- 过来看一下来了啊
- 2012-1-30 10:42:18 回复该留言
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。





