VS中创建自定义一个VC工程为基础的开发向导的总结
作者:朱金灿
来源:http://blog.csdn.net/clever101
VS允许用户进行自定义开发向导。自定义开发向导的好处在于将常用的设置都通过向导生成,从而大大提供开发效率。特别是在开发一些大型系统时,假如需要开发很多模块时,通过自定义的二次开发向导可以降低开发人员的开发入门门槛。
那么如何自定义二次开发向导呢?事实上VS中所有工程向导都是自定义向导的最好的参考例程。以MFC DLL工程为例,它的向导就在$\Microsoft Visual Studio9.0\VC\VCWizards\AppWiz。所以如果你的自定义向导和VC工程类似,最好也放在该目录下。
现在以制作一个VC工程为例,
一个自定义向导一般由以下文件夹组成:
HTML—— 向导的html文件
Images—— html中需要的图像文件
Scripts—— javascript文件(用于处理向导最终完成的按钮的响应函数)
Templates——代码模板文件
向导部署的时候,需要将CPIEPluginWizard.ico、CPIEPluginWizard.vsdir和CPIEPluginWizard.vsz三个文件拷贝到$\Microsoft Visual Studio 9.0\VC\vcprojects目录下。
然后把上面提到的四个文件夹都拷贝到$\Microsoft Visual Studio9.0\VC\VCWizards目录下。
如果你的开发一个自定义的开发向导,建议你不要全部自己开发,而是拷贝一份VCWizards下的向导,然后通过修改它的设置来达到你的目的。
一些重要的JS函数:
InitDocument: 初始化html页面的函数
functionNext(document, linkto) : 单击上一步和下一步按钮的响应函数
functionOnFinish(document): 完成按钮的响应函数
自定义向导的default.js里的函数实际上调用了VC向导中Script.js和Common.js的函数,有些需要从中改写里面的函数达到你的目的,比如增加工程设置。
很多时候JS需要将一些变量值传递到工程模板文件中,这时需要调用window.external.AddSymbol函数,如window.external.AddSymbol("MY_PLUGIN_ALGO",projalgo);
还有在模板可以使用这些变量进行控制,如在MFC工程中增加了对socket的支持,可以如下控制:
[!if SOCKETS]
// 套接字初始化
// 注意: 如果此扩展 DLL 由
// MFC 规则 DLL (如 ActiveX 控件)隐式链接到,
// 而不是由 MFC 应用程序链接到,则需要
// 将下列行从 DllMain 中移除并将它们放置在一个
// 从此扩展 DLL 导出的单独的函数中。使用此扩展 DLL 的
// 规则 DLL 然后应显式
// 调用该函数以初始化此扩展 DLL。
if (!AfxSocketInit())
{
return FALSE;
}
[!endif]
Templates.inf列出了创建工程所需要的全部文件。
参考文献:
1. VS自定义向导模板的应用研究 李刚,王叔野,田俊明(中国地质大学研究生院,湖北武汉430074)
VS中创建自定义一个VC工程为基础的开发向导的总结的更多相关文章
- 在Oracle电子商务套件版本12.2中创建自定义应用程序(文档ID 1577707.1)
在本文档中 本笔记介绍了在Oracle电子商务套件版本12.2中创建自定义应用程序所需的基本步骤.如果您要创建新表单,报告等,则需要自定义应用程序.它们允许您将自定义编写的文件与Oracle电子商务套 ...
- Eclipse中创建Maven多模块工程
1.先创建父项目 在Eclipse里面New -> Maven Project: 在弹出界面中选择“Create a simple project” 这样,我们就按常规模版创建了一个Maven工 ...
- Go入门:创建第一个Go工程
前言 我是一名iOS开发. 因为公司后台都用的Go. 因为对服务端不了解. 所以想自己学习学习. 环境 因为自己的电脑是mac.然后在阿里云买的是centOS的服务器. 所以下面搭建的环境都是在cen ...
- 创建第一个Hiberntae工程
一.前言 很久之前已经对Hibernate有所了解,在项目中进行过简单的应用,基本了解hibernate的简单应用,没有深入的了解,来Shine公司快三个月了,公司的ORM框架就是用Hiberante ...
- 在 ASP.NET MVC 中创建自定义 HtmlHelper
在ASP.NET MVC应用程序的开发中,我们常碰到类似Html.Label或Html.TextBox这样的代码,它将在网页上产生一个label或input标记.这些HtmlHelper的扩展方法有些 ...
- Javascript 中创建自定义对象的方法(设计模式)
Javascript 中创建对象,可以有很多种方法. Object构造函数/对象字面量: 抛开设计模式不谈,使用最基本的方法,就是先调用Object构造函数创建一个对象,然后给对象添加属性. var ...
- 【翻译】在Ext JS和Sencha Touch中创建自定义布局
原文:Creating Custom Layouts in Ext JS and Sencha Touch 布局系统是Sencha框架中最强大和最独特的一部分.布局会处理应用程序中每个组件的大小和位置 ...
- (转)在Eclipse中创建Maven多模块工程
背景:以前只总结了怎么在命令行下创建maven的多模块项目,在eclipse下怎么创建不是很清楚.最近需要在git的资源库中上传多模块项目,方便后期的维护,所以将网上的资料进行整理. 原文链接:htt ...
- 利用IntelliJ IDEA创建第一个Groovy工程
因为某些原因,需要学习一下Groovy.关于Groovy的入门教程请看这篇文章http://www.ibm.com/developerworks/cn/education/java/j-groovy/ ...
随机推荐
- asp.net 项目发布注意点
在修改了某些代码后,要发布到服务器 这时候 ,在本地发布完把对应的文件复制到服务器上覆盖即可. 1.如果修改的是.cs .asmx等文件,则需要覆盖其对应项目名称的.dll文件 2.如果修改的是.h ...
- PostgreSQL Replication之第七章 理解Linux高可用(5)
7.5 高可用性是所有冗余 让我们从一个不同的角度看一下前面的混合超市的例子.为了处理大量顾客无需长排队,无需关闭超市,混合超市雇用更多的出纳员以及安装许多(甚至更多)的收银机. 这样,如果一个收银机 ...
- PostgreSQL源代码中插件的使用
如果编译数据库时使用了gmake world和gmake install-world, 所有的插件都会被安装, 那么就不需要再次安装了. 插件目录 contrib 进入要安装的插件目录, 例如 cd ...
- include、require、include_once和require_once的区别
/*** * 1.include 和 require 的文件可以有返回值 * 2.include 包含的文件不存在,会发出一个警告,但是不会停止执行代码. * require 在这种情况下会抛出错误并 ...
- centos7 安装 Python netsnmp模块
由于模块的安装过程中有点艰难(其实挺简单,只是参照网上的教程很多都装不成功,花了很多时间...),所以记下来备忘. 先装一下python-devel 模块,执行命令 yum install pytho ...
- python 爬虫简介
初识Python爬虫 互联网 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现 ...
- 紫书 习题 10-8 UVa 10622(gcd)
把这个数质因数分解然后求因子个数的gcd就ok了. 一些细节 (1)这道题的质因数不需要存下来,每一次做完取一次gcd就ok了 (2)判断奇偶用ans & 1的时候要加括号, 位运算要注意括号 ...
- Nutch1.6学习笔记
回 到 目 录 暑假每天傍晚或晚上更新 伪恋赛高 这里提供nutch1.6的src下载: apache-nutch-1.6-src.zip 115网盘礼包码:5lbcymlo6u76http://11 ...
- 协变 & 逆变
都跟里氏替换原则有关. 协变:你可以用一个子类对象去替换相应的一个父类对象,这是完全符合里氏替换原则的,和协(谐)的变.如:用Swan替换Bird. 逆变:你可以用一个父类对象去替换相应的一个子类对象 ...
- Git的日常处理流程
前提 本地有2个分支,一个是master,还有一个是local master 默认追踪origin/master local 通过git branch -u origin/master来映射 开发的时 ...