COM 组件技术实验6

合集下载

BosonNetsim使用教程

BosonNetsim使用教程

你已成功将路由、交换设备搬回家了吧。

不知你把玩得怎样了?配置这些设备的一些简单指令、方法,你都掌握了吗?你只满足于简单的实验和操作,而不想自行搭建一个实验环境吗?渴望成为“网管”的你,肯定还想使自己的技术更上一层楼吧。

OK!现在,我们就为大家介绍一款功能非常强大的模拟器“Boson Netsim”(简称Boson),我们可以用它搭建免费的网络实验室,实验室中的设备和组成方式都可由我们自行决定。

通过“Boson Netsim”,你将学到更为实用、复杂的设备配置方法,你的“网管”技术将更为全面。

Boson Netsim小档案软件大小:22.5MB下载地址:/soft/7008.htmBoson算得上是目前最流行的,操作最接近真实环境的模拟工具。

可以毫不夸张地说,它就是真实设备的缩影。

与真实实验相比,使用它省去了我们制作网线连接设备,频繁变换CONSOLE线,不停地往返于设备之间的环节。

同时,它的命令也和最新的Cisco的IOS保持一致,它可以模拟出Cisco的中端产品35系列交换机和45系列路由器。

它还具备一项非常强大的功能,那就是自定义网络拓扑结构及连接。

通过Boson我们可以随意构建网络,PC、交换机、路由器都可被模拟出来,而且它还能模拟出多种连接方式(如PSTN、ISDN、PPP等)。

下面就为大家详细介绍该软件的安装、配置和使用技巧。

准备安装并启动Boson下载Boson并解压,双击netsim6.exe程序开始安装。

选择安装路径后通过点击“下一步”按钮即可完成安装。

提示:如果Boson的版本信息为“Boson Netsim FOR CCNP BETA 1”,这说明Boson不仅可以模拟CCNA实验及命令,还可模拟更高级、更复杂的CCNP实验。

安装完成后,双击桌面上的Boson Netsim的图标,即可启动Boson。

需要注意的是如果本机没有安装Microsoft forms2.0(大部分Windows 2000以上的操作系统都有该组件)和Adobe Acrobat程序(查看PDF文件的程序),Boson是不能启动的。

Comsol经典实例018:亥姆霍兹线圈中的磁场

Comsol经典实例018:亥姆霍兹线圈中的磁场

在 COMSOL Multiphysics 5.5 版本中创建Comsol经典实例018:亥姆霍兹线圈中的磁场亥姆霍兹线圈是相互平行的一对相同的圆形线圈,它们之间相隔一个半径并进行缠绕,从而使电流沿相同的方向流过这两个线圈。

这种绕组在两个线圈之间产生均匀磁场,其主分量与这两个线圈的轴平行。

亥姆霍兹线圈的应用范围包括消除地球磁场,产生磁场用于实验以及需要这种磁场的各种应用。

亥姆霍兹磁场的产生可以是静态的时变直流或交流磁场,具体取决于应用领域。

一、案例简介亥姆霍兹线圈是一对大小相同、相距一个半径长度的圆形平行线圈,两个线圈内的电流方向相同,如图1所示。

这种绕组在两个线圈之间产生均匀磁场,其主分量与两个线圈的轴平行。

均匀磁场是平行于线圈轴的两个场分量之和与垂直于同一轴的分量之差的结果。

此装置的目的是便于科研人员和工程技术人员执行需要已知环境磁场的实验和测试。

产生的亥姆霍兹场可以是静态、时变直流或交流,具体取决于应用。

具体应用包括为某些实验消除地球磁场;产生磁场以确定电子设备对磁场的磁屏蔽效果或磁化率;校准磁力计和导航设备以及生物磁学研究。

二、模型定义该 App 通过“三维磁场”接口构建。

模型的几何结构如图 2 所示。

图 1亥姆霍兹线圈图 2 模型几何结构三、域方程假设为静态电流和磁场,磁矢势A 必须满足以下方程:其中:μ是磁导率,J e 表示外加电流密度。

磁场H 、磁通密度B 和电势之间的关系由下式给出:该模型使用真空磁导率,即μ=4π×10-7 H/m 。

使用线圈的均质模型计算外部电流密度,每个线圈由10 匝导线组成,并由0.25 mA 的电流激励。

指定两个线圈的电流平行。

四、结果与讨论图3显示了线圈之间的磁通密度。

在线圈之间的区域中,磁通量相对均匀,这种均匀性是亥姆霍兹线圈的主要属性,通常也是我们所需要的特征。

图 3 切面图显示了磁通密度。

箭头表示磁场 (H) 强度和方向五、建模操作Step01:: 在新建窗口中,单击模型向导。

COM组件论文

COM组件论文

COM组件技术摘要按照组件化程序设计的思想,复杂的应用程序被设计成一些小的,功能单一的组件模块,这些组件模块可以运行在同一台的机器上,也可以运行在不同的机器上,甚至可以运行在跨越太平洋的两台机器上。

在理想情况下,每台机器的运行环境可以不同,甚至可以是不同的操作系统。

为了实现这样的应用软件,组件程序和组件程序之间需要一些极为细致的规范,只有组件程序遵守了这些共同的规范,软件系统才能正常运行。

为此,OMG和Microsoft分别提出了CORBA和COM标准,目前CORBA模型主要应用与UNIX操作系统平台上,而COM则主要应用与Microsoft Windows操作系统平台上。

Microsoft提出的组件对象模型标准不仅仅体现了组件化的程序设计思想,在实现上,它也采用了面向对象程序设计方法。

COM,既组件对象模型,是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互。

COM既提供了组件之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间交互的规范不依赖与任务特定的语言,所以COM也可以是不同语言协作开发的一种标准。

关键词:CORBA,COM,对象,接口第一章.绪论COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。

在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。

COM组件的优点:①可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;②可以在多个应用系统中重复利用同一个组件;③可以方便的将应用系统扩展到网络环境下;④COM组件的特性是与语言无关和与平台无关。

因此,一经开发便可以使用不同的高级语言和开发工具调用。

并且,客源在此COM组件基础进行二次开发。

随着Internet和Intranet应用的飞速发展,COM(Component Object Model,组件对象模型)以其巨大的潜力渗透到软件学科的各个领域。

什么是COM组件

什么是COM组件

什么是COM组件(源于互联网)COM是开发软件组件的一种方法。

组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。

开发自定义的COM组件就如同开发动态的,面向对象的API。

多个COM对象可以连接起来形成应用程序或组件系统。

COM是Component Object Model (组件对象模型)的缩写。

用户需要什么样的软件产品?这是一个多选题,但高效,健壮是肯定会被选种的。

作为一名软件开发人员如何做才能满足用户的需要呢?必须要保证升级应用时不破坏与以前版本的向后兼容性。

必须做到扩展系统服务时不依赖特定的操作系统。

面向对象的程序设计显然是一次革命性的改变。

采用面向对象的设计方法我们可以很容易的把要解决的问题事物抽象成各种类,并将内部动作封装隐藏起来,只提供一些接口。

但这并没有完全解决我们的问题。

昨天我在《程序员》杂志上看到,现在是后OO时代,那OO以后是什么呢?应该是面向组件吧。

COM component(COM组件)COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。

在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。

由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块;等等。

COM是开发软件组件的一种方法。

组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。

开发自定义的COM组件就如同开发动态的,面向对象的API。

多个COM对象可以连接起来形成应用程序或组件系统。

并且组件可以在运行时刻,在不被重新链接或编译应用程序的情况下被卸下或替换掉。

Microsoft的许多技术,如ActiveX, DirectX以及OLE等都是基于COM而建立起来的。

Multisim电路仿真实验

Multisim电路仿真实验

(1) 万用表的使用 如图所示,在万用表控制面板上可以选择电压值、电流值、 电阻以及分贝值。参数设置窗口,可以设置万用表的一些参数。
万用表图标、面板和参数设置
(2) 函数信号发生器 如图所示,在函数信号发生器中可以选择正弦波、三角波和 矩形波三种波形,频率可在1~999范围内调整。信号的幅值、 占空比、偏移量也可以根据需要进行调节。偏移量指的是交流 信号中直流电平的偏移。
IV分析仪及其使用
Multisim 电路仿真分析
1. 仿真实验法 应用Multisim 进行仿真的基本步骤如下。
(1) 启动Multisim
双击Multisim 图标进入Multisim 主窗口。 (2) 创建实验电路 连接好电路和仪器,并保存电路文件。
(3) 仿真实验
① 设置仪器仪表的参数。
② 运行电路:单击主窗口的启动开关O/I按钮,电 路开始仿真,若再单击此按钮,则仿真实验结束。若 要使实验暂停,可单击主窗口的暂停键,在开关旁边 再单击就可重新恢复电路运行。 ③ 观测记录实验结果。实验结果也可存储或打印输 出,并可用word的剪贴板输出。
新特点:
可以根据自己的需求制造出真正属于自己的仪器; 所有的虚拟信号都可以通过计算机输出到实际的 硬件电路上; 所有硬件电路产生的结果都可以输回到计算机中 进行处理和分析。
Multisim 使用方法
通过Option菜单可以对软件的运行环境进行定制和设置。 Global Preference:Symbol standard栏选DIN(欧洲标准,我国采用 的是欧洲标准) 放置元器件 通过Place/ Place Component命令打开Component Browser窗口。 选中相应的元器件:在Component Family Name中选择74LS系列, 在Component Name List中选择74LS00。单击OK按钮就可以选中 74LS00,出现如下备选窗口。7400是四/二输入与非门,在窗口种的 Section A/B/C/D分别代表其中的一个与非门,用鼠标选中其中的一个 放置在电路图编辑窗口中,如左图所示。器件在电路图中显示的图形 符号,用户可以在上面的Component Browser中的Symbol选项框中 预览到。当器件放置到电路编辑窗口中后,用户就可以进行移动、复 制、粘贴等编辑工作了。 将元器件连接成电路 将电路需要的元器件放置在电路编辑窗口后,用鼠标就可以方便地将 器件连接起来。方法是:用鼠标单击连线的起点并拖动鼠标至连线的 终点。在Multisim中连线的起点和终点不能悬空。 通过Simulate菜单执行仿真分析命令。项

COM的概念(精)

COM的概念(精)

10.3.2 ActiveX EXE 组件应用程序
ActiveX EXE组件需要通过应用程序来调用。 在组件中创建了若干类。为了调用这些类, 必须建立类的实例。 在应用程序中建立ActiveX EXE组件的引用实 例的步骤: 第1步:启动VB创建一个新工程,在“新建工 程”对话框中选择“标准EXE”,单击“确定” 按钮。 第2步;选择“工程”菜单中的“引用”项, 打开“引用”对话框,在可引用列表框中, 选择需要引用的ActiveX EXE程序,然后单 25 击“确定”按钮。
26
第3步:创建类的对象 若要使用某个类,只有创建类的对象后,才能使用类的一些方 法,其语法格式如下: Dim <对象名> As <类名> ’声明对象类型
Set <对象名> = New <类名> ’创建对象 也可以用以下语法格式声明并创建对象: Dim <对象名> As New <类名> 例如,为了使用上面类中的Plus过程,需要编写代码如下: Private Sub Command1_Klick( ) Dim MyCls As New CountCls Text1.Text=MyCls.Plus(10,10) End Sub
9
2. ActiveX脚本处理
ActiveX 脚 本 处 理 在 诸 如 VBScript 、
JavaScript这样的脚本语言中配合使用 ActiveX控件的处理过程。通过使用脚 本语言,可以使程序更具交互能力。
10
3. ActiveX文档
ActiveX 文 档 是 一 种 ActiveX 表 示 法 的 非 HTML 文 档。 如同 Word , Excel 建
23
第5步:在“工程”菜单中选择“工程属性”,打开“工程属性” 对话框,将工程名称设置为CountPrj,其它选项设置为默认 值。

COM原理及组件开发ppt课件

COM原理及组件开发ppt课件

事务支持
分布式构件服务
资源分发管理
安全模型
COM
易于管理
基于接口的编程模型
基本的构件服务
精选课件ppt
9
什么是COM?
COM(Component Object Model),组件对象模型,是一 种以组件为发布单元的对象模型,这种模型使得各个软件组件 可以用一种统一的方式进行交互 COM是一种协议,它建立了一个软件模块同另一个软件模 块之间的连接,提供了组件之间进行交互的规范,也提供了实 现交互的环境
virtual ULONG_stdcall Release() = 0;
}
精选课件ppt
16
基本概念:接口定义语言
微软接口定义语言MIDL(Microsoft Interface Definition
Language)是定义COM接口的申述式语言
通过独立于具体编程语言的方式来定义接口
该语言基于OSF分布式计算环境(DCE)远程过程调用
接口定义例:
interface IDictionary
{
HRESULT Initialize();
HRESULT LoadLibrary([in] string);
HRESULT InsertWord([in] string, [in] string);
HRESULT DeleteWord([in] string);
精选课件ppt
25
接口查询
一个COM对象(构件)可以实现多个接口. 使用QueryInterface查询某个构件是否支持某个特定的接口
void foo(Iunknown * pI){
IX * pIX = NULL;
HRESULT hr = pI->QueryInterface(IID_IX,

com组件和一般dll的区别

com组件和一般dll的区别

com组件和一般DLL的区别这阵子在想一个需要利用com组件的小程序怎么做,突然想起上次去面试的时候考官问过AutoCAD开发时为什么要利用com,而不采用一般的DLL呢?到Google上查了一下,许多人也问了一样的问题:)用com来写程序要比普通的DLL麻烦一些,但是带来的好处也大很多,尤其是在开发像AutoCAD这样大型软件的时候,需要跨区域来协同工作。

“学习COM,首先要知道COM的目的是什么,它解决了一个什么样的问题,在此基础上,MS 提供了各式各样的可扩展的COM服务,COM编程接口。

这些服务和接口恐怕一个程序员一辈子都不可能通晓,因为发展是如此之快。

大家也没有必要通晓这些接口,就象对待大量的WINAPI的态度,用到时再查帮助。

COM的各种努力都是在规定了一种二进制交互的协议。

说起来简单,做起来相当复杂,要使使用不同语言编写的客户能够使用任意语言编写的服务程序谈何容易!这里说语言还是把问题简单化了,因为每种语言还有各式各样的编译器,不同编译器出来的二进制代码如何交互?就拿DLL来说,DLL是对静态连接的一种改进,带来了更细的开发分工,也带来了很多问题,其中就有二进制如何交互的问题。

这个问题当DLL输出类时更加突出。

COM为解决此问题提出了极负创意的解决方案,不仅如此,更进一步引申,提出了如何跨网络的交互。

然后,针对internet服务器的开发提出COM+。

COM体系中融合了多种经典的设计模式,可以说是一种更加精干的C++。

COM博大精深,若干大师仍须半年的mental fog, 方能有豁然开朗之时。

我们这些晚辈,还需多加修炼才对,但决不止是COM。

1、COM组件以接口对功能分类,便于组织;DLL特别是大的DLL,函数一大堆,难以组织;2、COM组件便于升级维护,功能扩充,只需添加接口就行;DLL升级困难,函数不能随意改变;3、COM创建调用有很好的安全性,DLL没有;4、COM组件可轻松实现进程间调用,DLL很困难;5、COM组件可轻松实现分布式调用,DLL不可能;6、COM组件具有封装、继承、多态的面向对象特征,DLL只有封装;7、在COM组件的基础上实现了大量功能:ActiveX,OLE等;ActiveX、OLE、COM、OCX、DLL之间的区别熟悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多人还是比较模糊的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

COM 组件技术实验6---
自动化组件的应用(一):ATL实现自动化组件及其在VBS和VBA中的应用
一、实验内容
1、参照文档,完成自动化COM组件(工程名:ComExp6,短号:Auto,方法1:AddEx(),方法2:Upper())。

其中,方法AddEx()的功能扩展了以前的方法Add(),它能判断入参的类型,若传入的是整数,则完成加法功能,若传入的是字符串,则完成连接功能。

方法Upper()将传入的的字符串转换为大写状态。

重点在于VARIANT和BSTR的应用。

2、编写客户程序测试该自动化组件。

参照文档,分别使用vbscript和vba 进行调用,以理解自动化组件的应用本质(使其他高级语言或脚本语言都能调用COM组件,从而形成不同语言(环境)间的互通)
二、实验步骤
1、用ATL 实现自动化组件
1-1:建立一个ATL 工程(Project),工程名称为“ComExp4”
1-2:按默认进行。

选择DLL 类型、不合并代理和存根代码、不支持MFC、不支持MTS
1-3:New Atl Object... 选择Simple Object
1-4:输入名称和属性,属性按默认进行,也就是dual(双接口)方式
1-5:增加两个方法。

Add([in] VARIANT a, [in] VARIANT b, [out, retval] VARIANT * p Val);
Upper([in] BSTR str, [out,retval] BSTR * p Val);
1-6:完成代码
STDMETHODIMP CDispSimple::Add(VARIANT a, VARIANT b, VARIANT *pVal)
{
::VariantInit( pVal ); //初始化返回值(对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR* pvarg);进行初始化,其本质是将
vt设置为VT_EMPTY)
CComVariant v_1( a ); //将a传给CcomVariant模板类的实例化对象v_1,关于CcomVariant请看下说明
CComVariant v_2( b );
if((a.vt & VT_R8) && (b.vt & VT_R8) ) // 如果都是小数类型(通过a.vt & VT_R8 来判断是否含有VT_R8类型,不能用==进行判断)
{
v_1.ChangeType( VT_R8 ); // 转换为小数
v_2.ChangeType( VT_R8 ); // 转换为小数
pVal->vt = VT_R8;
pVal->dblVal = v_1.dblVal + v_2.dblVal; // 加法
}
else if((a.vt & VT_I4) && (b.vt & VT_I4) ) // 如果都是整数
类型
{ v_1.ChangeType( VT_I4 ); // 转换为整数
v_2.ChangeType( VT_I4 ); // 转换为整数
pVal->vt = VT_I4;
pVal->lVal = v_1.lVal + v_2.lVal; // 加法
}
else //其他情况做为字符串处理
{
v_1.ChangeType( VT_BSTR ); // 转换为字符串
v_2.ChangeType( VT_BSTR ); // 转换为字符串
CComBSTR bstr( v_1.bstrVal ); //将v_1.bstrVal传给CComBSTR模板类的实例化对象bstr,关于CComBSTR请看下说明
bstr.AppendBSTR( v_2.bstrVal ); //字符串连接
pVal->vt = VT_BSTR;
pVal->bstrVal = bstr.Detach(); //给出参赋值
}
return S_OK;
}
STDMETHODIMP CDispSimple::Upper(BSTR str, BSTR *pVal)
{
*pVal = NULL; //初始化返回值是个好习惯
CComBSTR s(str);
s.ToUpper(); // 转换为大写
*pVal = s.Copy();//传给*pVal
return S_OK;
}
说明:
1、以上代码必须搞懂
2、CComVariant是对VARIANT的封装类;CComBSTR是对BSTR的封装类。

使用ATL
提供的CcomVariant和CComBSTR比VARIANT、BSTR简便(通过封装类的现有函数),所以通常我们一般不直接使用原始的VARIANT、BSTR。

3、下表列举vt与常用数据的对应关系:
unsigned char bVal; VT_UI1
short iVal; VT_I2
long lVal; VT_I4
float fltVal; VT_R4
double dblVal; VT_R8
V ARIANT_BOOL boolVal; VT_BOOL
SCODE scode; VT_ERROR
CY cyVal; VT_CY
DA TE date; VT_DATE
BSTR bstrVal; VT_BSTR
IUnknown FAR* punkVal; VT_UNKNOWN
IDispatch FAR* pdispVal; VT_DISPATCH
SAFEARRAY FAR* parray; VT_ARRAY|*
4、加法函数AddEx()不使用long类型,而使用VARIANT的好处是:函数内部动态判断参数类型,如果是整数则进行整数加法,如果是字符串,则进行字符串加法(字符串加法就是字符串连接)。

也就是说,如果参数是VARIANT,那么我们就可以实现函数的可变参数类型。

2、脚本调用自动化组件(vbscript使用举例)
打开“记事本”程序,输入脚本程序,保存为xxx.vbs 脚本文件。

然后双击就能运行它。

3、vba调用自动化组件(WORD中使用举例)
说明:
VBA 是专门开发Off ice应用的一种语言---Visual Basic for Application,与vb 非常类似(如:环境,语法,常用控件等)
3-1:录制一段宏程序
3-2:选择“键盘”,当然你也可以把这个“宏”程序放到“工具栏”上去。

这里我们随便指定一个快捷键,比如Atl+Z(键入即可)
3-3:开始录制了,随便输入点东西。

然后点“停止”
3-4:接下来,执行菜单,选择这个刚刚录制的宏,然后编辑它
3-5:点“编辑”按钮,输入下面的程序:
然后保存关闭VBA 的编辑器。

3-6:看下效果
然后按快捷键Atl+Z
我们已经扩展了MS WORD 的功能,虽然只是一个简单的例子,但通过这个例子,可以体会到自动化组件的功能、作用。

相关文档
最新文档