发布MFC ActiveX控件并实现自动更新

 

原文

http://www.cnblogs.com/guenli/articles/1639784.html

一.        引言

上一篇我们讲了如何使用VC 2005来开发MFC ActiveX控件,我们开发ActiveX控件最终目的是将ActiveX控件发布出来并嵌入在Web网页中,随着控件的版本更新自动在客户端浏览器自动更新。这一篇我们就来讲讲这方面的实现。

使用工具:PackageForTheWeb

二.        编译ActiveX控件

在发布之前我们最好用VS2005将控件编译成“Release”版本,还有一个值得注意的地方是我们在使用MFC类库来开发ActiveX控件时要考虑客户端是否有MFC类库,解决方法有两种:

1.         在下面打包的时候将MFC的类库DLL附带上。

2.         通过“项目”—》“属性”打开项目属性对话框,将“MFC的使用”设置为“在静态库中使用MFC”。如下图:

image001.jpg

2011-12-15 09:05:14 上传
下载附件 (70.23 KB)


          点击“确定”保存配置信息,这样生成的ActiveX 控件不需要MFC 类库,笔者建议第2 种方法。

三.        打包ActiveX控件

编译好ActiveX控件,我们会在Release文件夹下发现“ActiveXDemo.ocx”文件生成。接下来我们打开“PackageForTheWeb”工具,界面如下:

image003.jpg

2011-12-15 09:05:14 上传
下载附件 (42.38 KB)


点击“下一步”按钮。


image005.jpg

2011-12-15 09:05:14 上传
下载附件 (40.43 KB)

默认设置,点击“下一步”按钮。

image007.jpg

2011-12-15 09:05:14 上传
下载附件 (41.38 KB)


输入上述信息,“公司名称”和“产品名称”为必输项,其它可以不填。点击“下一步”按钮。


  
   image009.jpg
2011-12-15 09:05:14 上传
下载附件 (35.82 KB)
     
  选择“Cab 文件”,点击“下一步”按钮。   

  
   image011.jpg
2011-12-15 09:05:14 上传
下载附件 (40.53 KB)
  

  找到你放置“ActiveXDemo.ocx ”目录,点击“下一步”按钮。
   image013.jpg
2011-12-15 09:05:14 上传
下载附件 (29.27 KB)
  



因为我们编译的ActiveX控件是按第二种方法编译的,所以不用附带其它dll文件,如果要附带其它文件可以通过点击“加入”按钮来自定义添加文件。点击“下一步”按钮。

image015.jpg

2011-12-15 09:05:14 上传
下载附件 (32.24 KB)



       点击“确定”,让工具添加默认的INF 文件。

   image017.jpg
2011-12-15 09:05:14 上传
下载附件 (39.58 KB)
      
  点击“下一步”按钮。
      image019.jpg
2011-12-15 09:05:14 上传
下载附件 (48.84 KB)
            
      点击“下一步”按钮。
      image021.jpg
2011-12-15 09:05:14 上传
下载附件 (40.03 KB)

      设置好项目和cab 文件保存目录。点击“下一步”按钮。
  
   image023.jpg
2011-12-15 09:05:14 上传
下载附件 (40.25 KB)
                  
       点击“下一步”按钮。
       image025.jpg
2011-12-15 09:05:14 上传
下载附件 (38.71 KB)
            
       最后点击“完成”按钮。

四.        发布ActiveX控件

通过上面的步骤我们会得到一个“ActiveXDemo.cab”文件。我们用“EditPlus”新建一个Html文件,具体内容如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ActiveX 测试</title>
<script language = 'javascript'>

         function AddFun()
         {
                   var iResult = MYAvtiveX.AddFun(12, 11);// 调用ActiveX 控件的AddFun 方法。
                   alert(iResult);
         }
</script>
</head>

<body>
<object id="MYAvtiveX" classid="clsid: F0E7128D-E311-42F1-A0BA-88397960732E"
CODEBASE=" ActiveXDemo.cab#version=1,0,0,1"> </object>
<fieldset>
<legend>MyActiveX 测试</legend>
    <table width="100%" border="1">
      <tr>
        <td width="20%"><input type='button' οnclick='AddFun()' value='AddFun'> </td>
      </tr>   
    </table>
</fieldset>
</body>
</html>
version=1,0,0,1 ”要与前面的Info 文件中的version 一致。到现在为止,我们可以将上面的Html 页面和cab 文件放置在一个目录下,并且将这个设为Web 虚拟目录可以通过浏览器来测试。

五.        更新ActiveX控件

如果修改了ActiveX控件的方法,并且用上述的编译的方法编译ActiveX控件,打包ActiveX控件。在打包ActiveX控件步骤中,我们需要在编辑INF文件步骤中我们可以将FileVersion设置为1,0,0,2。为了区别以往的版本。

image027.jpg

2011-12-15 09:05:14 上传
下载附件 (40.23 KB)


      相应的我们在更新ActiveX 控件步骤中,在HTML 文件中将<object id="MYAvtiveX" classid="clsid: F0E7128D-E311-42F1-A0BA-88397960732E"
CODEBASE=" ActiveXDemo.cab#version=1,0,0,2"> </object> version 设置为上面的版本号。这样的话客户端浏览器在浏览页面时会自动检测控件的版本,如果有更新的版本浏览器会提示你重新安装控件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值