VC2010開發MFC ActiveX控件基礎教程

時間:2009-12-22 作者:和尚釋然

一.        創建MFC ActiveX項目

1.       打開VS2005新建MFC項目。這裏我們取名爲“ActiveXDemo”。

 

2.       輸入項目名稱爲“ActiveXDemo”和項目位置。點擊“確定”按鈕,打開向導對話框。

                              

 

3.       選擇“控件設置”選項卡,具體設置可參考上圖。其它選項卡爲默認設置。最後點擊“完成”按鈕保存設置。

二.        添加控件方法

VC2005會爲我們自動創建好MFC ActiveX程序框架,我們只要給該ActiveX控件添加方法即可。現在我們給控件添加一個“AddFun”方法,這個方法是將兩個數相加並返回結果。

1.       點擊“視圖”,打開“類視圖”窗口。

2.       展開“ActiveXDemoLib”項,選中“_DActiveXDemo”項。點擊鼠標右鍵,選擇“添加”下的“添加方法”。

3.       打開添加方法嚮導窗口。因爲我們是添加一個加法方法,所以我們設置的返回類型爲LONG型,方法名設爲AddFun,添加兩個LONG類型參數Add1Add2

 

4.       其它爲默認設置,點擊“完成”按鈕完成添加方法。接下來我們打開“解決方案資源管理器”打開“ActiveXDemoCtrl.cpp”文件。

 

5.       打開代碼視圖,我們會發現VC2005已經爲我們添加了一個“AddFun”方法,我們在方法內添加“return Add1 + Add2;”語句。

 

6.       最後生成項目。

三.        測試ActiveX控件

經過上面操作我們已經生成了OCX控件文件。接下來的步驟就是要將這個OCX控件嵌入在Html頁面中,通過Javascript來調用控件方法來測試我們的OCX控件是否能正常運行。

1.       我們用“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"> </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>

上面的“classid”我們可以打開“ActiveXDemo.idl”文件獲得:

 

2.       最終的Html頁面顯示效果如下,點擊“AddFun”按鈕,彈出計算結果提示框。



========================注意點========================

 

1、  運行時許可證默認不勾選: 如果勾上,生成時會多出一個文件.lic , 只有擁有許可的用戶纔可以調用ocx插件

 

 

2、工程生成好之後,右鍵工程屬性,對其進行配置:(注意點 已在途中勾出)

 

 

3、 在 鏈接器—常規—註冊輸入選“是”, 如果編譯的時候出現,該錯誤提醒,有2個可能。 第一種: 你運行的VS2010 ,在Win7下,不是管理員級別。所以會出現權限不夠的問題。 第二種: 缺少對應的dll, 此時你可以使用 C++ 的工具 dependency ,對ocx 進行分析。查看到底缺少了那些dll 。然後下載到對應的 dll 將其 放入system32 目錄下,重新用工具再次分析。

 

4、 出現無法打開 ocx的編譯錯誤: 這個是由於你上次運行的 IE 瀏覽器沒有關閉,ocx被佔用導致。

 

最後附上 一段 批處理的代碼,稍微可以方便點。。。

 

 

Java代碼  收藏代碼
  1. %SystemRoot%\system32\regsvr32.exe  safeIpos2.ocx  
  2. copy   safeIpos2.ocx   %SystemRoot%\system32  

 將其保存成 .bat 文件,運行。


發佈了15 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章