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