ASP+COM技术在嵌入式Webserver中的应用
1 .COM組件介紹
COM(Component Object Model),即組件對象模型,它是微軟公司開發(fā)的一種新的軟 件開發(fā)技術(shù),Microsoft 的許多技術(shù),如 ActiveX、DirectX、以及 OLE 等都是基于 COM 而建立起來的。COM 標(biāo)準(zhǔn)包括規(guī)范和實現(xiàn)兩大部分,規(guī)范部分定義了組件和組件之間通信的 機制,這些規(guī)范不依賴于任何特定的語言和操作系統(tǒng),只要按照該規(guī)范,任何語言都可以使 用; COM 標(biāo)準(zhǔn)的實現(xiàn)部分是 COM 庫,COM 庫為 COM 規(guī)范的具體實現(xiàn)提供了一些核心服務(wù)。
有了這種跨語言設(shè)計的方法,我們就可以通過動態(tài)網(wǎng)頁技術(shù),也就是嵌入式主板提供的 WebServer 功能,利用 VBScript 或者 JavaScript 使用 COM 提供的接口方法,完成遠(yuǎn)程監(jiān) 控和遠(yuǎn)程控制以及遠(yuǎn)程更改等功能。利用這種跨平臺的方法,我們還可以把應(yīng)用程序做的工作,做成 COM 組件,那么其它語言都可以實現(xiàn)直接調(diào)用,即可增加了團隊合作的效率,有可以滿足一些特定的需求。
2. 運用VS2005創(chuàng)建COM組件
我們使用ATL創(chuàng)建一個標(biāo)準(zhǔn)的COM組件。該組件提供一個ICOM_NetParms接口,并通過ICOM_NetParms接口的ChangeNetParms()方法更改系統(tǒng)的網(wǎng)絡(luò)參數(shù)。下面給出生成COM組件的全部過程。
(1) 使用VS2005|VC++新建一個智能設(shè)備|ATL智能設(shè)備項目SetNetParms,如下圖3-1所示。單擊“確定”后,進入如圖3-2所示的平臺向?qū)?#xff0c;選擇sdk9263(ARMV4I)。下一步進入3-3所示的界面中,服務(wù)器類型選擇“動態(tài)鏈接庫(DLL)”,附加選項選擇“支持MFC”復(fù)選。
?
圖3-1新建ATL工程
?
圖3-2 平臺選擇向?qū)?/span>
?
圖3-3 應(yīng)用程序設(shè)置向?qū)?/span>
(2)添加COM對象
選擇VS2005主菜單“項目|添加類”,選擇添加“ATL簡單對象”,如圖3-4所示。
下面進入ATL簡單對象向?qū)?#xff0c;如圖3-5所示,類名為COM_NetParms。然后再切換到如圖3-6所示的頁面中選擇線程模型為“自由”,接口為“雙重”,聚合為“是”。
?
圖3-4 添加ATL簡單對象
?
圖3-5 “ATL簡單對象向?qū)А苯缑?/p>
?
圖3-6 ATL Object Wizard屬性對話框
(3)為對象添加接口方法
?選擇vs2005主菜單“視圖|類視圖”,選中ICOM_NetParms,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“添加方法(M)”項,即可為ICOM_NetParms對象添加接口方法了。
圖3-7是為接口添加方法的對話框界面,輸入方法名ChangeNetParms和參數(shù),然后單擊“完成”按鈕,就添加了一個ChangeNetParms(BSTR ip, BSTR mask, BSTR gateway)方法了,三個參數(shù)的類型都為BSTR型。
?
圖3-7 為接口添加方法的對話框界面
下面就要來具體實現(xiàn)ChangeNetParms方法了。點擊“解決方案”,打開源文件下的COM_NetParms.cpp文件,即可為ChangeNetParms方法添加代碼了。具體實現(xiàn)代碼請參考工程文件。
3 .ASP調(diào)用COM組件
(1)注冊COM組件
ASP調(diào)用COM組件前需要在目標(biāo)板上注冊COM組件,方法ADOCE注冊方法。
(2)ASP中調(diào)用COM組件中的方法
在asp中調(diào)用COM組件的方法很簡單,首先創(chuàng)建一個實體,通過實體調(diào)用方法就行了。Vbscript的實現(xiàn)代碼如下:
set NetObj=CreateObject("SetNetParms.COM_NetParms")?? '創(chuàng)建對象
NetObj.ChangeNetParms a,b,c
在這里值得注意的是參數(shù)類型要匹配,下面介紹2中常用的數(shù)據(jù)類型轉(zhuǎn)換方法。
BSTR轉(zhuǎn)換為LPTSTR:
CComVariant v_1( ipadds );
???????? v_1.ChangeType( VT_BSTR );?????????????? // 轉(zhuǎn)換為字符串
CString csip(v_1.bstrVal);
LPTSTR pip =(LPTSTR)(LPCTSTR)csip;
CString轉(zhuǎn)換為VARIANT:
CString str;
VARIANT* NetParms;
???????? NetParms->vt = VT_BSTR;
???????? NetParms->bstrVal = str.AllocSysString(); //cstring to bstr
總結(jié)
以上是生活随笔為你收集整理的ASP+COM技术在嵌入式Webserver中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交通银行信用卡怎么网上激活
- 下一篇: ldr和adr在使用标号表达式作为操作数