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

ASP+COM技术在嵌入式Webserver中的应用相关推荐

  1. 网络通讯技术在嵌入式系统中的应用

    网络通讯技术在嵌入式系统中的应用 一.嵌入式系统的由来 1.1 嵌入式系统的概念:       嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能.可靠性.成本.体积.功耗.环境 ...

  2. 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】

    看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断. A. 软件喂狗 B. 处理器温度过高 C. 外部中断 D. 看门狗定时器超时 解析: 思考方式: 每个 ...

  3. linux卸载cf卡命令,嵌入式Linux 中CF卡的驱动和管理技术研究

    在嵌入式Linux系统中,为了在没有PCMCIA控制器的情况下仍然要利用CompactFlash存储卡(简称CF卡)作为存储设备,作者从CF卡的硬件特性入手,在系统层基于CF卡的memory寻址访问方 ...

  4. python嵌入式系统开发技术_Python在嵌入式项目中的辅助开发_彭树林

    效率和质量至关重要.本文要介绍的Python脚本语言和众多 第三方函数库就是这样的利器:易学.高效.功能强,值得推 广. 1 Python简介 Python是一种流行的动态脚本语言,经历了十多年的发展 ...

  5. 网页里如何嵌入服务器控制,在嵌入式设备中实现Web动态服务与Web控制的实现思路...

    随着网络技术的不断发展,嵌入式系统将不断地和网络相结合.嵌入式Web技术是计算机领域研究的热点,其优点是开发成本低.通用性强,能运行在8位或16 位MCU环境中,其丰富的Web用户图形界面使得嵌入式设 ...

  6. 嵌入式开发中DSP与FPGA的关系

    嵌入式开发中DSP与FPGA的关系 常所说的单片机侧重于控制,不支持信号处理,属于低端嵌入式处理器,arm可以看做是低端单片机升级版,支持操作系统管理,更多接口如网卡,处理能力更强;fpga是可编程逻 ...

  7. ASP.NET 2.0 正式版中无刷新页面的开发

    ASP.NET 2.0 正式版中无刷新页面的开发 在已经发布的 ASP.NET2.0 中,无刷新页面开发相关部分同 beta2 有不少改动.而且在越来越多的 Ajax 开发包被开发出来的情况下, AS ...

  8. Spread for ASP.NET技术白皮书

    引言 随着互联网在全球范围内的快速发展,越来越多的中国企业开设自己的企业网站,向外展示自己的服务和产品.同时,企业内部的办公自动化系统.客户关系管理系统.内容发布系统等其它系统也逐渐开始使用以B/S为 ...

  9. 嵌入式系统中进程间通信的监视方法

    概述 复杂的嵌入式系统中,常常同时运行着相当多的进程.这些进程之间频繁的进行着大量的通信动作.进程的运行状态与这些不断发生的通信有着直接和紧密的联系.通过对进程间通信的监视,开发人员可以掌控系统内部运 ...

最新文章

  1. oracle adf 使用,ORACLE ADF 问题总结
  2. Android 使用CornerPathEffect绘制圆角矩形
  3. 暖通lisp快捷键_CAD 快捷键一览
  4. 网易智慧企业 Node.js 实践(3)| 灰度环境和应用监控
  5. 6月开招|工业互联才是王道,最高可达50k!
  6. nssl1191,P2700-逐个击破(平津战役)【并查集】
  7. SVN版本管理系统的使用(CentOS+Subversion+Apache+Jsvnadmin+TortoiseSVN)
  8. 如何在IEDA中连github
  9. shell编程之 cut命令详解
  10. springmvc错点集结
  11. 机器学习:激活函数的作用和原理
  12. 联想拯救者y7000p加内存条_联想 拯救者Y7000P 如何插入SD卡?
  13. git 详解-进阶篇
  14. 【板栗糖GIS】如何免费下载landsat8的遥感影像数据
  15. 金融数学作业——二叉树方法定价(上证50ETF期权)
  16. 克尼汉的c程序设计语言,c程序设计语言 英文版
  17. 一般什么企业需要开展等保三级测评工作
  18. 猫影视配置2022.06.04
  19. 微软股价 2019 年飙升 55.3%,创十年来最佳表现!
  20. 【学术相关】深大博士后被双非高校院长拒收简历?博士毕业出路何在?

热门文章

  1. php 安装php soap.dll,php_soap.dll下载
  2. 简述List、Set、Map类型的集合的各自特点
  3. 山东科技大学计算机等级,关于2019年03月全国计算机等级考试报名工作的通知
  4. oracle查看列状态unused,Oracle9i下将列设为UNUSED时的系统行为
  5. 小米手机无法连上WIFI网络的解决方案
  6. 【Redis】解析Redis和Java传递数据
  7. loadrunner controller:实时查看VUser的运行情况
  8. pentaho DI--- Tutorial (spoon)
  9. pytorch中的squeeze和unsqueeze
  10. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第24篇]描述一个二进制m组的滑动窗口指数算法