ASP+COM技术在嵌入式Webserver中的应用

本文介绍如何使用VS2005创建COM组件并实现网络参数修改功能,同时演示了通过ASP调用该组件的过程。

1 .COM组件介绍

COM(Component Object Model),即组件对象模型,它是微软公司开发的一种新的软 件开发技术,Microsoft 的许多技术,如 ActiveX、DirectX、以及 OLE 等都是基于 COM 而建立起来的。COM 标准包括规范和实现两大部分,规范部分定义了组件和组件之间通信的 机制,这些规范不依赖于任何特定的语言和操作系统,只要按照该规范,任何语言都可以使 用; COM 标准的实现部分是 COM 库,COM 库为 COM 规范的具体实现提供了一些核心服务。

有了这种跨语言设计的方法,我们就可以通过动态网页技术,也就是嵌入式主板提供的 WebServer 功能,利用 VBScript 或者 JavaScript 使用 COM 提供的接口方法,完成远程监 控和远程控制以及远程更改等功能。利用这种跨平台的方法,我们还可以把应用程序做的工作,做成 COM 组件,那么其它语言都可以实现直接调用,即可增加了团队合作的效率,有可以满足一些特定的需求。

2. 运用VS2005创建COM组件

我们使用ATL创建一个标准的COM组件。该组件提供一个ICOM_NetParms接口,并通过ICOM_NetParms接口的ChangeNetParms()方法更改系统的网络参数。下面给出生成COM组件的全部过程。

(1) 使用VS2005|VC++新建一个智能设备|ATL智能设备项目SetNetParms,如下图3-1所示。单击“确定”后,进入如图3-2所示的平台向导,选择sdk9263(ARMV4I)。下一步进入3-3所示的界面中,服务器类型选择“动态链接库(DLL)”,附加选项选择“支持MFC”复选。

 

图3-1新建ATL工程


 

图3-2 平台选择向导

 

图3-3 应用程序设置向导

(2)添加COM对象

选择VS2005主菜单“项目|添加类”,选择添加“ATL简单对象”,如图3-4所示。

下面进入ATL简单对象向导,如图3-5所示,类名为COM_NetParms。然后再切换到如图3-6所示的页面中选择线程模型为“自由”,接口为“双重”,聚合为“是”。

 

图3-4 添加ATL简单对象

 

图3-5 “ATL简单对象向导”界面

 

图3-6 ATL Object Wizard属性对话框

(3)为对象添加接口方法

 选择vs2005主菜单“视图|类视图”,选中ICOM_NetParms,单击鼠标右键,在弹出的快捷菜单中选择“添加方法(M)”项,即可为ICOM_NetParms对象添加接口方法了。

图3-7是为接口添加方法的对话框界面,输入方法名ChangeNetParms和参数,然后单击“完成”按钮,就添加了一个ChangeNetParms(BSTR ip, BSTR mask, BSTR gateway)方法了,三个参数的类型都为BSTR型。

 

图3-7 为接口添加方法的对话框界面

下面就要来具体实现ChangeNetParms方法了。点击“解决方案”,打开源文件下的COM_NetParms.cpp文件,即可为ChangeNetParms方法添加代码了。具体实现代码请参考工程文件。

3 .ASP调用COM组件

(1)注册COM组件

ASP调用COM组件前需要在目标板上注册COM组件,方法ADOCE注册方法。

(2)ASP中调用COM组件中的方法

在asp中调用COM组件的方法很简单,首先创建一个实体,通过实体调用方法就行了。Vbscript的实现代码如下:

set NetObj=CreateObject("SetNetParms.COM_NetParms")   '创建对象

NetObj.ChangeNetParms a,b,c

在这里值得注意的是参数类型要匹配,下面介绍2中常用的数据类型转换方法。

BSTR转换为LPTSTR:

CComVariant v_1( ipadds );

         v_1.ChangeType( VT_BSTR );               // 转换为字符串

CString csip(v_1.bstrVal);

LPTSTR pip =(LPTSTR)(LPCTSTR)csip;

CString转换为VARIANT:

CString str;

VARIANT* NetParms;

         NetParms->vt = VT_BSTR;

         NetParms->bstrVal = str.AllocSysString(); //cstring to bstr

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值