VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

来源:互联网 发布:linux 修改用户组名 编辑:程序博客网 时间:2024/04/29 11:57

原谅链接:http://www.cnblogs.com/gengaixue/archive/2010/08/13/1799112.html


开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件。(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网上发表相关内容的朋友们。)

ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。这里控件容器就是浏览器,用户不需要通过浏览器调用控件的属性或方法。因此,开发面向Web的ActiveX控件比开发桌面的控件还要简单些,所复杂的是如何将该控件很好地嵌入主页,使用户能正常浏览。下面介绍这个问题。

一.创建MFC ActiveX项目

1.打开VS2005新建MFC项目。这里我们取名为“ActiveXDemo”。

2. 输入项目名称为“ActiveXDemo”和项目位置。点击“确定”按钮,打开向导对话框。

WoSign 免费提供的时间戳服务URL: http://timestamp.wosign.com/timestamp

时间戳服务非常重要,添加时间戳后,即使您的代码签名证书已经过期,但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信,最终用户仍然可以放心下载,使得即使代码签名证书已经过期,您也无需重签和重新发布已经签名的代码。


3.选择“控件设置”选项卡,具体设置可参考上图。其它选项卡为默认设置。最后点击“完成”按钮保存设置。

二.添加控件方法

VC2005会为我们自动创建好MFC ActiveX程序框架,我们只要给该ActiveX控件添加方法即可。现在我们给控件添加一个“AddFun”方法,这个方法是将两个数相加并返回结果。

1.点击“视图”,打开“类视图”窗口。

2. 展开“ActiveXDemoLib”项,选中“_DActiveXDemo”项。点击鼠标右键,选择“添加”下的“添加方法”。

3. 打开添加方法向导窗口。因为我们是添加一个加法方法,所以我们设置的返回类型为LONG型,方法名设为AddFun,添加两个LONG类型参数Add1Add2

4.其它为默认设置,点击“完成”按钮完成添加方法。接下来我们打开“解决方案资源管理器”打开“ActiveXDemoCtrl.cpp”文件。

5. 打开代码视图,我们会发现VC2005已经为我们添加了一个“AddFun”方法,我们在方法内添加“return Add1 + Add2;”语句。

三、MFC Activex 安全问题:

 1、在默认环境下,编译的MFC Activex控件,只能在本地代码中运行,即在http://localhost/xxx/xxx.htm中执行,而在http://127.0.0.1/xxx/xxx.htm中提示无相关属性,需要设置其初始化和脚本运行的安全性

  ActiveX在远程IE页面上执行,需要实现安全接口。

  在ATL写的ActiveX中,用IObjectSafety。

  http://support.microsoft.com/kb/168371/en-us

  在MFC写的ActiveX中,直接修改注册表。

  http://support.microsoft.com/kb/161873/en-us

  mfc实现的ocx,要在app实现文件中包括两个文件:

在ActivexDemo.cpp 文件中实现以下方法

代码