轉帖|使用教程|編輯:鮑佳佳|2021-04-20 11:44:58.157|閱讀 327 次
概述:ActiveX的開發可以用C#、VB及C++等語言。用C++開發ActiveX既可以使用ATL,也可以使用MFC。ATL ActiveX輸出文件較小,適合網絡傳輸,但開發復雜度稍大;而MFC ActiveX輸出文件稍大(附帶必要的MFC dll),但易于上手。本文主要介紹基于MFC的ActiveX開發
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
瀏覽器插件之ActiveX開發(一)
一般的Web應用對于瀏覽器插件能不使用的建議盡量不使用,因為其涉及到安全問題以及影響用戶安裝(或自動下載注冊安裝)體驗問題。在有特殊需求(如涉及數據安全的金融業務數據交互、需插件才能實現的與本地設備的交互等)的情況下可以酌情慎用。
瀏覽器插件總體可以劃分為兩大陣營,即IE支持的插件以及非IE支持的插件。本來在Netscape時代,對于瀏覽器插件是有公用的規范的(NPAPI),一開始所有瀏覽器都支持該規范,包括IE。后來出于商業原因,微軟的IE不再支持NPAPI,改而自己開發了一套基于COM的ActiveX體系,但這個體系對于非IE瀏覽器是拒絕支持的。所以目前的狀況基本是,IE瀏覽器僅支持ActiveX控件,而Firefox、Chrome等瀏覽器只支持另一類接口(XPCOM或NPAPI)。要想實現一個Web插件,至少需要同時考慮IE支持的AceiveX版以及非IE支持的Plugin版(Flash等插件對于IE與非IE瀏覽器都是不同的)。
ActiveX的開發可以用C#、VB及C++等語言。用C++開發ActiveX既可以使用ATL,也可以使用MFC。ATL ActiveX輸出文件較小,適合網絡傳輸,但開發復雜度稍大;而MFC ActiveX輸出文件稍大(附帶必要的MFC dll),但易于上手。本文主要介紹基于MFC的ActiveX開發。文章開始前先介紹一下activeX控件:
Xtreme Suite Pro是為Windows開發人員提供的用于ActiveX COM的用戶界面套包,創建包含完整的高度可自定義的用戶界面組件(包括Visual Studio樣式對接窗格和Office樣式功能區,工具欄和菜單),以使您的應用程序具有現代外觀。
一、創建項目及添加接口
在Vs.net 2008中,新建一個MFC ActiveX Control項目:
點擊“OK”后將彈出如下對話框:
依次點擊“Next”按鈕直到“Control Settings”標簽頁:
由于本例子只演示僅提供函數接口不基于界面的ActiveX,故“Create control based on”選擇“(none)”即可。點擊"Finish”按鈕,即完成了項目的創建,文件結構如下:
右擊項目名稱,選擇“Properties”,在項目屬性對話框中對“All Configurations”進行配置。在“Configurations Properties->General”標簽頁中,“Use of MFC”選擇“Use MFC in a static Library”,以便編譯時將MFC相關庫自動和控件一起打包。對于“Character Set”的選擇根據具體情況而定,須注意“Unicode Character Set”和“Mulity-Byte Character SEt”對字符處理是完全不一樣的(字符編碼不一樣,需要進行MultiByteToWideChar或WideCharToMultiByte轉換)。
注意:創建MFC ActiveX Control時已經自動給項目添加了.def文件并做好了相應關聯。若對配置信息更改后導致編譯的ocx注冊不成功或提示找不到EntryPoint,可以檢查一下Linker->Input的Module Definition File是否配置正確,正常情況下已經自動配置好了,如下圖:
接下來就可以在ActiveX中添加我們需要與外部交互的接口方法和屬性了。選擇“Class View”,右擊“MyTestActiveXLib->_DMyTestActiveX”,在彈出的菜單中可以選擇Add Function或Add Property來添加接口方法或接口屬性:
這里以定義一個LONG AddFun(LONG num1,LONG num2) 的接口函數為例,添加Menthod如下圖所示:
點擊Finish后,即可在“MyTestActiveXCtrl.cpp”文件找到剛添加的接口函數代碼:
在函數體中完成自定義的業務邏輯即可。
下一章將講解如何實現安全接口!
轉載自:博客園-
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn