vc6开发activex并发布全攻略(一)(初级篇)

来源:互联网 发布:godaddy 阿里域名 编辑:程序博客网 时间:2024/05/18 02:00

原文地址

vc6开发activex并发布全攻略(一)(初级篇)

2009-05-22 11:08:53|  分类:vc技术篇 |字号 订阅

 最近空闲时间比较多,自己研究了下ActiveX的技术。前面转载了一篇用c#开发ActiveX的文章,照着做了下,成功了,但毕竟xp的用户比较多,系统没有自带.netFramework,所以c#开发的ActiveX还不能普及。所以想学下用vc++开发ActiveX控件。由于我现在开发用的是c#和java语言,对c++还很陌生,所以花了半天看了下c++语法,但收效甚微。凭着自己多年来利用Baidu和Google 的成功经验和自己屡败屡战的意志,终于磕磕绊绊的完成了一个简单的ActiveX,并能通过IE让用户下载安装。

先说下我的开发环境:

开发工具:vc6.0

操作系统:win2003

IE版本:IE7.0

 

做开发之前,在网上查了下vc开发activeX的资料,得知vc开发ActiveX可选两种框架,一种是ATL COM结构,还有一种是MFC结构。经过筛选,还是选择了MFC结构,因为这种方式开发比较普遍。那开发之前我们得先知道MFC到底是什么,这里我就不多讲了,去Baidu下,如果你看完以后没有理解,那很正常,因为我也没看懂,呵呵。

理论没看懂不要紧,但起码你得知道MFC程序是怎么开发的啊,经过Baidu找到一个MFC的例子,很经典,是内地一女程序员写的,写的比较经典,也很详细,照着她写的例子在VC6.0上写了一遍,收获不小。由于是女的写的,语句也比较女性化,所以我也不方便转载,这里贴出她的blog地址,强烈建议你去照着做一遍,因为我这篇文章不会讲MFC是什么,怎么实现(其实我到现在也没理解,呵呵):

http://sakura006.blog.hexun.com/31435400_d.html

那下面我们就开始VC开发ActiveX的旅程,不足之处还望高人指点,也请读者海涵:

一.打开vc6.0,新建一个MFC ActiveXControlWizard项目:  

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

 

工程名称随便起,比如我的叫MyActiveX。点击确定,一路默认下一步,完成后生成的文件目录如下:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

生成的文件包括源文件夹,头文件夹和资源文件夹。还是那句话,想知道这些文件具体都是做什么的,去问下百度,我这里只讲步骤。

二.其实这个工程本身生成的就是一个ActiveX控件,它的功能是在页面上画个圆。那我们现在先查看下效果。直接点击F7,控制台显示编译成功,并生成MyActiveX.ocx文件。 

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

我的这个工程目录是在E:\MyPro下,那生成的MyActiveX.ocx就在E:\MyPro\MyActiveX\Debug下:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

恩,就是那个万花丛中一行红的那个。

那我们看看运行效果。

点开vc的工具->ActiveX Control Test Container菜单,如果你的VC看不到这个选项,那你可能是安装了精简版:vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

弹出下面这个对话框:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

然后选择edit->Insert New Control选项弹出下面这个窗口:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客 

 

 

然后选择edit->Insert New Control选项弹出下面这个窗口:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

在列表中我们可以看到MyActiveX这个我们刚刚生成的控件。选择OK,看看效果,一个圆:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

这个工具很好用,我们在activeX中的自定义方法在这个测试容器里测试:

选择Control->InvokeMethods选项:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

弹出下面的对话框:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

选择方法名,通过parmeter列表还可以设置方法的参数,设置好以后,点击Invoke就可以看到我们自定义方法的效果。如果只返回参数,那返回的结果就显示在Return文本框里。如果是弹出对话框,那将弹出你设计的对话框。现在方法中只有一个系统默认的弹出软件相关的一个对话框。看看:vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

 

三.下面我们就在activex中添加自定义方法。

     这个自定义方法很简单,就是增加一个test(short  a,short b)方法,返回a+b的值。也许某些高手看到这里会笑,这么简单的方法还好意思写啊。呵呵。没关系,毕竟这篇文章只是菜鸟之作,给入门者看的。

  选择左边工程目录的ClassView选择项(下图中红色方框里的),也就是显示类图:.下面我们就在activex中添加自定义方法。

     这个自定义方法很简单,就是增加一个test(short  a,short b)方法,返回a+b的值。也许某些高手看到这里会笑,这么简单的方法还好意思写啊。呵呵。没关系,毕竟这篇文章只是菜鸟之作,给入门者看的。

  选择左边工程目录的ClassView选择项(下图中红色方框里的),也就是显示类图:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

然后选择菜单查看->建立类向导,弹出对话框:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

选择上图中automation(自定义)标签页,ClassName选择CMyActivexCtr类,因为我们自定义的方法一般都是在Ctrl这个类文件中实现的。选择Add Method按钮,弹出对话框:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

在External name填入我们的方法名。比如我的这个方法叫做test,有两个参数a和b,如下图:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

点击确定:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

继续确定,看看工程类列表有什么变化:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

恩,多了两项:一个test的接口和一个test的实现类。

双击test实现类,也就是上面图中的第二个红框类,找到

short CMyActiveXCtrl::test(short a, short b)

{

       // TODO: Add your dispatch handler code here

       return 0;

}

方法,将它改为

short CMyActiveXCtrl::test(short a, short b)

{

       // TODO: Add your dispatch handler code here

       return a+b;

}

呵呵,只是将return 0该成了return a+b;

直接F7,

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

显示编译成功。

那现在再打开vc的工具->ActiveX Control Test Container菜单(参照前面的图)。选择MyActivex控件,然后再选择Control->InvokeMethods选项:

看看,在MethodName中多了一个test方法,而且有两个参数a,b

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

通过SetValue给a与b赋值。点击invoke在Return中就会显示结果,2+4=6:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

那我们这个Activex就算做好了,在E:\MyPro\MyActiveX\Debug目录下的MyActiveX.ocx就是我们的成品。下面就进行发布工作。

在网上找了很多资料,费了很大劲才找到一个适合我们菜鸟级学习的博文。那我在下一篇中转载并做补充。因为在发布过程中出现了很多莫名奇妙的问题。这一篇只是我们漫长旅程的开始。

   未完待续………………..

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 想把店长弄走怎么办 济南银座卡过期了怎么办 银座购物卡丢失后怎么办 银座的卡丢了怎么办 银行卡换了旧卡怎么办 大理市民卡丢了怎么办 市民卡内的钱怎么办 宝付支付乱扣款怎么办 苏宁任性贷逾期怎么办 第二次跟家里开口要钱还网贷怎么办 网贷到家来要钱怎么办 网贷贷不了啦急要钱怎么办 百度推广竞价关键词太长怎么办 药店位置差客流少怎么办 网站上的用词违规怎么办 苹果16g内存不够怎么办 手机16g内存不够怎么办 在私企年纪大了怎么办 谷歌浏览器显示不安全打不开怎么办 4s密码多次错误怎么办 苹果4s手机系统错误怎么办 汽车充电口坏了怎么办 如果手机充不了电怎么办 淘宝买的家电坏了怎么办 衣服皱了没有熨斗怎么办 油烟机油盒坏了怎么办 实体店不给换货怎么办 台式电脑鼠标不动了怎么办 电脑开机一直长鸣报警怎么办 国外电话卡网速太慢怎么办 滴滴提现忘记登录密码怎么办 微信提现支付密码忘记了怎么办 小米手机前置摄像头打不开怎么办 mp4视频屏幕好小怎么办 投了简历没回应怎么办 借壳上市原股票怎么办 红米note3指纹解锁失灵怎么办 来分期刷脸失败怎么办 买到假货商家不承认怎么办 买到假货翻新货工商局怎么办 三星note8笔丢了怎么办