




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、37软件组件技术实验报告软件组件技术实 验 报 告学院:信 息 工 程 学 院专业: 计算机科学与技术学号: 111404060319 姓名: 彭逸帆 班级: 计 科 113 班 实验1 组件的使用实验目的:1 进一步熟练掌握软件开发技术。2 掌握COM组件的注册、查看和使用等过程。3 了解熟悉注册表软件组件使用过程中的作用实验环境:Windows系统平台和C+ Builder开发环境。实验学时: 2学时实验内容:给出一个软件组件,要求根据此说明,进行组件的注册、反注册、查看注册表、查看组件和类型库,并编写程序调用操控组件。要求记录操作的步骤和遇到的问题及解决方法,能够熟练使用组件。并掌握Bo
2、rland C+ Builder环境下组件的注册、反注册,查看组件和类型库的方法,并用C+ Builder编写客户程序调用实现对所给组件的调用。实验步骤:1 实验前首先下载所给组件并保存。位置可以自己选择,并可尝试给组件取不同名字。2 注册组件方法1:a、 确定待注册文件的位置b、启动windows开始菜单上的”运行”,输入”regsvr32.exe”或者“C:WINDOWSsystem32regsvr32.exe”c、输入待注册的组件的路径和文件名并运行方法2:a、 确定待注册文件的位置b、启动windows开始菜单上的”所有程序|附件|命令提示符”,输入”regsvr32.exe”或者“C
3、:WINDOWSsystem32regsvr32.exe”c、输入待注册的组件的路径和文件名并运行例如:C:WINDOWSsystem32regsvr32.exe "C:Documents and SettingsAdmin istrator桌面第二章 newtestcomserver2 MyCOMServer2.dll"3 查看注册表步骤:a、启动windows开始菜单上的”运行”,或者按开始键+”R”,输入”regedit”,然后按确定b、然后在启动的程序中确定查找组件的范围,如选中根节点c、打开“编辑”菜单下查找,在对话框中输入要找的组件名并确定d、查看组件的如下信息
4、CLSID、ProgID和 类型库等信息,示例如下: 类ID组件位置和线程类型ProgIDTypelib4 组件反注册:a、 确定待注册文件的位置b、启动windows开始菜单上的”运行”,输入”regsvr32.exe”或者“C:WINDOWSsystem32regsvr32.exe u”c、输入待卸载的组件的路径和文件名并运行 示例:C:WINDOWSsystem32regsvr32.exe /u "C:Documents and Settings Administrator桌面第二章 newtestcomserver2MyCOMServer2.dll"d、再次进入注册
5、表查看相关信息。5 查看类型库 a、 启动C+ Builder,选择“文件 | 打开”或者直接按“打开”按钮或者是相应的快捷键b、选择需要打开的组件文件(以dll为后缀),弹出如下对话框c、查看属性不同属性页的内容,如“Text”等d、熟悉不同按钮的作用6 导入类型库a、在C+ Builder下,创建新的工程,并选择“工程 | 引入类型库”,系统弹出如下页所示对话框b、移动滚动条查看下面文本框的内容及其变化c、加入新的组件,单击”添加”按钮,在弹出的对话框中选择打开要添加的组件文件d、分别单击”Install”按钮和”Create Unit”,查看生成文件的变化,以区分它们的功能。7 组件操作
6、 a、 在C+ Builder下,创建新的工程,选择“文件|新建”,在弹出的对话框中new属性页下选择”Application”,单击”确定”按钮b、 创建新的窗体,选择“文件|新建”,在弹出的对话框中new属性页下选择”Form”,单击”确定”按钮c、 在Form上添加按钮,选中窗体后,双击或拖动Standard面板上的“按钮”图标按钮图标d、 双击按钮复制如下代码到函数内,并进行相应的更改,结果与以下类似:/-#include <vcl.h>#pragma hdrstop#include "Unit1.h" #include "beepPro_OC
7、X.h"/-#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;const IID IID_IBeepObj =0xDB6A2409,0x1F5D,0x45A2,0xB4,0x9E,0xCA,0x92,0xE4,0xD0,0x59,0x71;const CLSID CLSID_BeepObj =0xD50CCF87,0xFF38,0x4C20,0x9B,0x61,0x5E,0x5E,0x9D,0x5B,0x32,0x8C;/-_fastcall TForm1:TForm1(TCompon
8、ent* Owner) : TForm(Owner)/-void _fastcall TForm1:Button1Click(TObject *Sender)/ GUIDS defined in the serverHRESULT hr; / COM error codeIbeepServer *IBeep; / pointer to interfacehr = CoInitialize(0); / initialize COM Four Steps to Client Connectivity if (SUCCEEDED(hr) / macro to check for successhr
9、= CoCreateInstance(CLSID_BeepObj, / COM class idNULL, / outer unknownCLSCTX_INPROC_SERVER, / server INFOIID_IBeepObj, / interface id(void*)&IBeep ); / pointer to interfaceif (SUCCEEDED(hr)hr = IBeep->beepMeth(800); / call the methodhr = IBeep->Release(); / release interfaceCoUninitialize()
10、; / close COM实验心得:通过本次的实验也认识到了自己不足,对以前知识的记忆大多已模糊,本次的实验中,又重新复习了一遍组件的相关知识,也算是对自己的一个督促,使我下定决心以后要更加扎实的学习,对所学知识要及时复习,多多上机练习,增强自己的实际编程能力。实验2 组件的开发实验目的:1 进一步熟练掌握软件组件技术。2 掌握COM组件的编写、注册和使用等过程。3 了解组件的开发过程和运行原理实验环境:Windows系统平台和C+ Builder开发环境。实验学时: 2学时实验内容:开发一个实现加法功能的组件。要求根据此说明,编写一个实现特定功能的组件,进行组件工程的创建、保存和组件的创建保
11、存,并在上次的调用程序下调用测试。要求记录操作的步骤和遇到的问题及解决方法,能够熟练编写简单的组件。并掌握Borland C+ Builder环境下不同类型组件的编写和调用。实验步骤:实验前首先根据要求设计一个COM对象和其接口,熟悉C+ Builder中组件编制的环境,并在硬盘上创建一个目录用于保存组件相关信息,以便观察。创建组件:步骤1:创建组件工程 客户程序利用工程名.类名 保存时确定组件名很重要 创建进程内组件:选择File|New |Other打开“New Items”对话框,File|New|Other打开“New Items”对话框,选中”ActiveX”属性页.,双击Activ
12、eX Library图标或选中后单击”OK”按钮步骤2:保存组件库选择File|Save as或者File|Save Project as,在C+ Builder打开的保存对话框,输入文件名,进行保存。点击类型库编辑器中的注册按钮,进行注册,看一看生成什么文件。注意观察哪个名字与生成的*.dll(组件文件)文件名一致。创建组件对象 包括接口设计和组件类的声明步骤三:创建组件使用COM对象向导 (1)选择File|New|Other打开“New Items”对话框,选中”ActiveX”属性页.(2)双击Com Object图标或选中后单击”OK”按钮(3)设置弹出的”New COM Objec
13、t”对话框,在CoClass Name中输入COM对象名,系统会在Implemented Interface中自动生成接口名,可以更改接口名。各项内容含义如下: CoClass name: 组件对象名. Implemented Interface: 实现的接口,缺省名字为:“I”+组件对象名,也可以单击List在弹出的对话框中选择所需接口,显示为所选接口名。 Threading Model: 组件的线程模型,一般选默认值即可。 Event support: 表示是否自动生成部分组件支持事件的代码。 Oleautomation: 表示生成组件是否与自动化对象兼容,选中可自动生成部分代码,自定义接
14、口时有效。 Implement Ancestor Interfaces: 选中要实现接口时有效,选中后可自动生成接口的实现。但不生成IUnknown, IDispatch和IAppServer的实现. (4)系统弹出如下对话框后,再次单击保存,查看新增的文件。步骤4:定义组件方法步骤4.1:在弹出的类型库编辑器中,在左侧窗口中,单击鼠标右键,在弹出的菜单中,单击New.步骤4.2:选中需要增加的项,单击鼠标或直接按红色方框圈中的按钮。添加方法:(1): 在new弹出的菜单中,选中Method,则在左侧窗口中增加”Method1”,可更改名字.方法名(2) 可在方法名中或者在“Attribute
15、s”属性页下Name文本框内,输入新的名字,在“Parameters”属性页下,输入属性参数。(3): 单击刷新按钮,生成方法的框架代码。(4): 在图中蓝色区域所在的括号内属于方法的相关代码。 *sum=num1+num2;return S_OK;步骤5:测试1 分别打开“Project|Options”和“Tools|Debugger”查看设置.2 选择 Run|Parameters, 输入客户程序的名字和参数,单击OK.3 选择 Run|Run.4 设置断点,在程序中选中行后双击鼠标,或按鼠标右键后选择Debug后的菜单项。实验心得:这次试验跟同学一起组队完成,学习了组件的知识外又温习了
16、编程、c语言等的知识,结合了各种技术完成了这项课程设计,在实验过程中难免遇到各种问题,在老师与同学的帮助下学到很多细节的知识,这次我们组做的学生学习成绩数据挖掘课程设计,结合知识做的成绩管理系统实用性强,意识到技术在实际生活中的实用性,发现该更加好好学习计算机科学与技术知识,加强各方面的训练,把所学的知识跟生活结合起来,并更好的运用到生活中去,给生活带来便捷,这也是学习这门技术的好处所在。实验3 控件的开发实验目的:1 进一步熟练掌握软件组件技术。2 掌握ActiveX控件的编写、注册和使用等过程。3 了解控件的开发过程和运行原理实验环境:Windows系统平台和C+ Builder开发环境。
17、实验学时: 4学时实验内容:开发一个实现加法功能的控件。要求根据此说明,编写一个实现特定功能的控件,进行组件工程的创建、保存和组件的创建保存,并在上次的调用程序下调用测试。要求记录操作的步骤和遇到的问题及解决方法,能够熟练编写简单的控件。了解属性页的功能及其与控件的关系,及控件在网络环境下的使用,并掌握Borland C+ Builder环境下控件的编写和调用。实验步骤:实验前首先根据要求设计一个COM对象和其接口,并熟悉C+ Builder中组件编制的环境。创建控件:步骤1:创建控件从VCL类生成控件:允许用户选择一个VCL类为基类(1) 选择File|New|Other 打开 New It
18、ems对话框,选中ActiveX属性页.(2) 双击ActiveX Control图标或选中它后单击”OK”按钮,弹出如下对话框 *XControl.*: 控件工程名,包含了启动控件所需的代码,一般不需要改变。 _TLB.*:类型库文件,定义了控件的CoClass类、面向客户的接口以及它们所需的类型的定义。 *Impl*.*: ActiveX控件实现文件,定义并实现控件。以Active Template Library (ATL) 的VCLCONTROL_IMPL宏为基础. *_ATL.cpp (.h):一个ATL unit,前面省略的是工程名,包含了对所需类的引用和声明. An About
19、box form and unit if you requested them. A .LIC file if you enabled licensing.步骤2:创建组件使用COM对象向导 步骤2.1:选择File|New|Other打开“New Items”对话框,选中”ActiveX”属性页.步骤2.2:双击Com Object图标或选中后单击”OK”按钮步骤2.3:设置弹出的”New COM Object”对话框,设置内容如下: CoClass name: 组件对象名. Implemented Interface: 实现的接口,缺省名字为:“I”+组件对象名,也可以单击List在弹出的
20、对话框中选择所需接口,显示为所选接口名。 Threading Model: 组件的线程模型,一般选默认值即可。 Event support: 表示是否自动生成部分组件支持事件的代码。 Oleautomation: 表示生成组件是否与自动化对象兼容,选中可自动生成部分代码,自定义接口时有效。 Implement Ancestor Interfaces: 选中要实现接口时有效,选中后可自动生成接口的实现。但不生成IUnknown, IDispatch和IAppServer的实现. 步骤2.4:设置完后,单击OK,弹出如下对话框。使用自动化对象向导 步骤2.1:选择File|New|Other打开“
21、New Items”对话框,选中”ActiveX”属性页. 显示同COM对象。 步骤2.2:双击Automation Object图标或选中后单击”OK”按钮,弹出如下对话框。步骤2.3:设置CoClass name、 Threading Model、 Event support,其含义同COM对象。步骤3:设置组件选项单击“Project| Option”,选中Option,设置ATL,可选默认设置,各项含义如下:Instancing: 确定COM对象的实例数,对进程内组件服务无效。 -Single Use:客户实例化对象后,COM将其从视图中删除,其它客户可以创建他们自身的对象实例。 -M
22、ultiple use:每个客户可以创建自己的实例,且都在同一进程空间。OLE Initialization COINIT_XXX flag: 确定COM怎么初始化-apartment-threaded:对象在创建的线程中调用- multithreaded:对象可以在多个线程调用Debugging flags: 设置调试方式. 步骤4:定义组件步骤4.1:在弹出的类型库编辑器中,在左侧窗口中,单击鼠标右键,在弹出的菜单中,单击New.步骤4.2:选中需要增加的项,单击鼠标或直接按红色方框圈中的按钮。添加方法:步骤4.2.1: 在new弹出的菜单中,选中Method,则在左侧窗口中增加”Meth
23、od1”,可更改名字.步骤4.2.2: 可在方法名中或者在“Attributes”属性页下Name文本框内,输入新的名字,在“Parameters”属性页下,输入属性参数。步骤4.2.3: 单击刷新按钮,生成方法的框架代码。步骤4.2.4: 在图中蓝色区域所在的括号内属于方法的相关代码。添加属性:步骤4.2.1: 在new弹出的菜单中,选中Progerty,则在左侧窗口中增加两个”Progerty1”,分别表示属性的读和写. 步骤4.2.2: 可在属性名中或者在“Attributes”属性页下Name文本框内,输入新的名字.步骤4.2.3: 单击刷新按钮,生成方法的框架代码。步骤4.2.4:
24、在图中蓝色区域所在的括号内属于方法的相关代码。步骤5:注册和反注册(C+ Builder方法)步骤5.1: 选择“Run|Register ActiveX Server”注册. 步骤5.2: 选择“Run| Unregister ActiveX Server”反注册.步骤6:测试1 分别打开“Project|Options”和“Tools|Debugger”查看设置.2 选择 Run|Parameters, 输入客户程序的名字和参数,单击OK.3 选择 Run|Run.4 设置断点,在程序中选中行后双击鼠标,或按鼠标右键后选择Debug后的菜单项步骤7:部署要让Web客户使用ActiveX控件
25、,必须在Web服务上部署,而且每次改变后要重新编译部署,否则客户看不到变化.步骤7.1 选择 “Project|Web Deployment Options”步骤7.2 在弹出的Web Deployment Options对话框上,设置目标目录“Target Dir”,为要生成的控件有关文件需要存放的位置,也可以是本地目录,如C:INETPUBwwwroot.步骤7.3 在弹出的Web Deployment Options对话框上,设置目标URL“Target URL”为一个网络地址,如步骤7.4 在弹出的Web Deployment Options对话框上,设置HTML目录“HTML Dir
26、”为包含控件引用的HTML文件的位置,如 C:INETPUBwwwroot步骤7.5 在弹出的Web Deployment Options对话框上,设置部署选项。步骤7.6 在弹出的Web Deployment Options对话框上,单击OK.步骤7.7 选择“Choose Project|Web Deploy”.实验心得:在整个课程设计阶段,自己还有很多不足的地方,一旦遇到很难解决的问题,陷入困境后,很难自己独立的解决问题,常常需要老师的引导。在今后的学习工作过程中还要加强独立解决问题的能力。总而言之,这次数据挖掘程序设计实践让我们收获很大。所以尽管遇到了一些问题,但是却学到了很多知识,同
27、时也找到了自己的不足和其他同学的优点,明白了团结合作的重要性,总之很感谢这次课程设计以及指导老师和小组成员们。实验4 控件的开发实验目的:1 进一步熟练掌握软件组件技术。2 掌握ActiveX控件的编写、注册和使用等过程。3 了解控件的开发过程和运行原理实验环境:Windows系统平台和C+ Builder开发环境。实验学时: 4学时实验内容:开发一个实现Beep功能的组件。要求根据此说明,编写一个实现特定功能的组件,进行组件工程的创建、保存和组件的创建保存,并在上次的调用程序下调用测试。要求记录操作的步骤和遇到的问题及解决方法,能够熟练编写简单的组件。并掌握Borland C+ Builde
28、r环境下不同类型组件的编写和调用。实验步骤:实验前首先根据要求设计一个COM对象和其接口,并熟悉C+ Builder中组件编制的环境。创建控件:步骤1:创建控件从VCL类生成控件:允许用户选择一个VCL类为基类步骤1.1:Choose File|New|Other to open the New Items dialog box.步骤1.2: 选中ActiveX属性页.步骤1.3:双击ActiveX Control图标或选中它后单击”OK”按钮 基于VCL类生成控件:它以TActive Form为基类步骤1.1:选择File|New |Other打开“New Items”对话框,选中”Acti
29、veX”属性页.步骤1.2:双击ActiveX Form图标或选中后单击”OK”按钮 *XControl.*: 控件工程名,包含了启动控件所需的代码,一般不需要改变。 _TLB.*:类型库文件,定义了控件的CoClass类、面向客户的接口以及它们所需的类型的定义。 *Impl*.*: ActiveX控件实现文件,定义并实现控件。以Active Template Library (ATL) 的VCLCONTROL_IMPL宏为基础. *_ATL.cpp (.h):一个ATL unit,前面省略的是工程名,包含了对所需类的引用和声明. An About box form and unit if y
30、ou requested them. A .LIC file if you enabled licensing.步骤2:创建组件使用COM对象向导 步骤2.1:选择File|New|Other打开“New Items”对话框,选中”ActiveX”属性页.步骤2.2:双击Com Object图标或选中后单击”OK”按钮步骤2.3:设置弹出的”New COM Object”对话框,设置内容如下: CoClass name: 组件对象名. Implemented Interface: 实现的接口,缺省名字为:“I”+组件对象名,也可以单击List在弹出的对话框中选择所需接口,显示为所选接口名。 T
31、hreading Model: 组件的线程模型,一般选默认值即可。 Event support: 表示是否自动生成部分组件支持事件的代码。 Oleautomation: 表示生成组件是否与自动化对象兼容,选中可自动生成部分代码,自定义接口时有效。 Implement Ancestor Interfaces: 选中要实现接口时有效,选中后可自动生成接口的实现。但不生成IUnknown, IDispatch和IAppServer的实现. 步骤2.4:设置完后,单击OK,弹出如下对话框。使用自动化对象向导 步骤2.1:选择File|New|Other打开“New Items”对话框,选中”Activ
32、eX”属性页. 显示同COM对象。 步骤2.2:双击Automation Object图标或选中后单击”OK”按钮,弹出如下对话框。步骤2.3:设置CoClass name、 Threading Model、 Event support,其含义同COM对象。步骤3:设置组件选项单击“Project| Option”,选中Option,设置ATL,可选默认设置,各项含义如下:Instancing: 确定COM对象的实例数,对进程内组件服务无效。 -Single Use:客户实例化对象后,COM将其从视图中删除,其它客户可以创建他们自身的对象实例。 -Multiple use:每个客户可以创建自己
33、的实例,且都在同一进程空间。OLE Initialization COINIT_XXX flag: 确定COM怎么初始化-apartment-threaded:对象在创建的线程中调用- multithreaded:对象可以在多个线程调用Debugging flags: 设置调试方式. 步骤4:定义组件步骤4.1:在弹出的类型库编辑器中,在左侧窗口中,单击鼠标右键,在弹出的菜单中,单击New.步骤4.2:选中需要增加的项,单击鼠标或直接按红色方框圈中的按钮。添加方法:步骤4.2.1: 在new弹出的菜单中,选中Method,则在左侧窗口中增加”Method1”,可更改名字.步骤4.2.2: 可在
34、方法名中或者在“Attributes”属性页下Name文本框内,输入新的名字,在“Parameters”属性页下,输入属性参数。步骤4.2.3: 单击刷新按钮,生成方法的框架代码。步骤4.2.4: 在图中蓝色区域所在的括号内属于方法的相关代码。添加属性:步骤4.2.1: 在new弹出的菜单中,选中Progerty,则在左侧窗口中增加两个”Progerty1”,分别表示属性的读和写. 步骤4.2.2: 可在属性名中或者在“Attributes”属性页下Name文本框内,输入新的名字.步骤4.2.3: 单击刷新按钮,生成方法的框架代码。步骤4.2.4: 在图中蓝色区域所在的括号内属于方法的相关代码
35、。添加属性页:步骤4.1 创建属性页 步骤4.1.1 选择“File|New|Other”,在弹出对话框中选择ActiveX。 步骤4.1.2 双击“Property Page”图标(或者)步骤4.2 在属性页上添加控件,操作如在Form上一样,如步骤4.3 关联属性页上的控件和主控件的属性,添加代码步骤4.3.1 选择代码框中左边的TPropertyPage下的UpdatePropertyPage按回车键或者直接双击鼠标,右边对话框会显示其实现代码,在“/ Update your controls from OleObjects “所在位置添加关联代码,如下所示: void _fastcal
36、l TPropertyPage1:UpdatePropertyPage(void)InputMask->Text = OleObject.OlePropertyGet("EditMask"); 步骤4.3.2选择代码框中左边的TPropertyPage下的UpdateObject按回车键或者直接双击鼠标,右边对话框会显示其实现代码,在“/ Update your controls from Controls“所在位置添加关联代码,如下所示:void _fastcall TPropertyPage1:UpdateObject(void)/ Update OleObject from your controlOleObject.OlePropertySet<WideString>("EditMask", WideStri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共用墙合同范本
- 兼职防疫保安合同范本
- 出售吊车合同范例
- 加装电梯托管合同范本
- 光伏销售质保合同范本
- 单位二手房交易合同范本
- 劳动合同范例 河南
- 买卖交易正规合同范本
- 个人买卖住房合同范本
- 人保寿险合同范本
- 乐沛LOTSPLAY德国HABA逻辑思维课程介绍手册
- 高中化学人教版一轮复习-晶体结构与性质(复习课件)
- GB/T 22919.3-2008水产配合饲料第3部分:鲈鱼配合饲料
- 刘半农《教我如何不想她》课件
- 前行第07节课(仅供参考)课件
- 船舶涂装课件
- 界面砂浆检测报告
- 浙江鞋业出口贸易研究
- (完整版)环境科学与工程-专业英语词汇
- 中考形容词副词专题复习市公开课一等奖省名师优质课赛课一等奖课件
- 甲醛优质课件
评论
0/150
提交评论