發布MFC ActiveX控件并實現自動更新
一. 引言
上一篇我們講了如何使用 VC 2005來開發 MFC ActiveX控件,我們開發 ActiveX控件最終目的是將 ActiveX控件發布出來并嵌入在 Web網頁中,隨著控件的版本更新自動在客戶端瀏覽器自動更新。這一篇我們就來講講這方面的實現。
使用工具: PackageForTheWeb
二. 編譯 ActiveX 控件
在發布之前我們最好用 VS2005將控件編譯成“ Release”版本,還有一個值得注意的地方是我們在使用MFC類庫來開發 ActiveX控件時要考慮客戶端是否有 MFC類庫,解決方法有兩種:
1. 在下面打包的時候將 MFC的類庫 DLL附帶上。
2. 通過“項目”—》“屬性”打開項目屬性對話框,將“ MFC的使用”設置為“在靜態庫中使用MFC”。如下圖:
點擊“確定”保存配置信息,這樣生成的 ActiveX控件不需要 MFC類庫,筆者建議第 2種方法。
三. 打包 ActiveX 控件
編譯好 ActiveX控件,我們會在 Release文件夾下發現“ ActiveXDemo.ocx”文件生成。接下來我們打開“PackageForTheWeb”工具,界面如下:
點擊“下一步”按鈕。
默認設置,點擊“下一步”按鈕。
輸入上述信息,“公司名稱”和“產品名稱”為必輸項,其它可以不填。點擊“下一步”按鈕。
選擇“ Cab文件”,點擊“下一步”按鈕。
找到你放置“ ActiveXDemo.ocx”目錄,點擊“下一步”按鈕。
因為我們編譯的 ActiveX控件是按第二種方法編譯的,所以不用附帶其它 dll文件,如果要附帶其它文件可以通過點擊“加入”按鈕來自定義添加文件。點擊“下一步”按鈕。
點擊“確定”,讓工具添加默認的 INF文件。
點擊“下一步”按鈕。
點擊“下一步”按鈕。
設置好項目和 cab文件保存目錄。點擊“下一步”按鈕。
點擊“下一步”按鈕。
最后點擊“完成”按鈕。
四. 發布 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' onclick='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。為了區別以往的版本。
相應的我們在更新 ActiveX控件步驟中,在 HTML文件中將 <object id="MYAvtiveX" classid="clsid: F0E7128D-E311-42F1-A0BA-88397960732E"
CODEBASE=" ActiveXDemo.cab#version=1,0,0,2"> </object> 將 version設置為上面的版本號。這樣的話客戶端瀏覽器在瀏覽頁面時會自動檢測控件的版本,如果有更新的版本瀏覽器會提示你重新安裝控件。
RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成