一. 引言
上一篇我們講了如何使用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' ο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。爲了區別以往的版本。
相應的我們在更新ActiveX控件步驟中,在HTML文件中將<object id="MYAvtiveX" classid="clsid: F0E7128D-E311-42F1-A0BA-88397960732E"
CODEBASE=" ActiveXDemo.cab#version=1,0,0,2"> </object>將version設置爲上面的版本號。這樣的話客戶端瀏覽器在瀏覽頁面時會自動檢測控件的版本,如果有更新的版本瀏覽器會提示你重新安裝控件。