以下是小编为大家收集的VBCOM基础讲座之全面测试,本文共4篇,欢迎参阅,希望可以帮助到有需要的朋友。

篇1:VBCOM基础讲座之全面测试
我们不用VisualBasic来测试前面的程序,而是先来编译:
选择“File”->“MakeProject1.exe”菜单;
择要保存的文件夹,单击[OK]按钮;
-align=“right”>->->-> 退出VisualBasic;
运行刚才编译过的.EXE文件;
当表单出现时,试试打开一个customer,然后对其修改并单击[OK]按钮,再打开刚才的customer,看看其资料是否被修改?结果应该是这样,因为ActiveXDLL会自动将结果保存在数据库中。
现在,让我们静下来想一想刚才做过的事件。我们只用了几条简单的语句就建立了一个自己的数据库应用程序,虽然这里只使用了 COM一点功能,但却使得应用程序变得如此容易。
关闭已测试完的应用程序;
如果上述过程比较顺利的话,那么我们再做这样的测试:
打开Northwind工程;
假如对Northwind工程作了某些修改,那么还需要重新编译:
选择“File”->“CompileNorthwind.dll”菜单;
选择和上次保存 Northwind.dll相同的文件夹,以便覆盖原来的文件,单击[OK]按钮;
需要说明的是,如果编译时出现错误,那肯定在程序中有一些不对的地方,
关闭所有正在运行的程序,然后再重新试一试。
编译后,退出VisualBasic;
再次运行Project1.exe;
天啦,居然会有错误信息,类已不再支持原来接口。
这就是我们做的一种测试,当重新编译ActiveX工程时,使用它的程序就会被支解。
解决上述问题的一种办法是将Project1文件打开并重新编译。但是假如工作组中有两百个员工,这就是说,我们得把重新编译好的工程和新的DLL分发到这两百个员工手上。
你能受得了吗?
不,不能这样做。我们必须搞清楚错误产生的原因,以及弄明白为什么我们的工程不能和最新的DLL一起工作,难道是兼容性的问题吗?本教程的最后一部分将详细探讨这些内容。
篇2:VBCOM基础讲座之测试ActiveXEXEs
示例中将使用这样一个组件,它是一个有效的文件探测器,大约每隔60秒检测指定文件的存在性。如何该文件存在,该组 件激发一个事件来调用应用程序,如果不存在,则另作处理。
当然,如果将所有代码写到ActiveXDLL工程,则运行时程序代码将被挂起直到文件检测代码运行完毕为止。由于ActiveXEXE工程拥有自己的 进程空间,代码运行时会自我协调、异步处理,从而不会使其他程序代码停顿。
下面就来创建:
新建一 个“ActiveXEXE”工程;
工程名设为“File”;
添加的类名为“FileCheck”;
下一步,我们需要构造一些用于每隔1分钟左右检测文件的代码。这里将在ActiveXEXE工程插入一个带有计时器的表单。但该表单不会被显示,因为我 们只是使用上面的计时器控件每隔1分钟左右来检测文件,如果相应的文件被检测到,则激发一个事件。
选 择“Project”->“AddForm”;
在表单Form1中添加一个计时器;
在表单代码中添加下列 变量的声明:
->PublicFilenameAsString->
该变量用于保存被监视的文件名。
在表单代码中添加下列事 件的声明:
->PublicEventFileFound->
该事件只有当前面的文件发现后才被激发。
在Timer1 代码中添加下列语句:
-> PrivateSu
BT
imer1_Timer()
IfDir(Filename)“”Then
RaiseEventFileFound
Timer1.Interval=0
EndIf
EndSub->
代码中,首先简单地检测文件,若存在则激发FileFound事件,然后将 Timer1的时间间隔设为0,停止以后的检测。
打开FileCheck类;
在通用声明处添加下列对象的声明:
->DimWithEventsobjFileCheckAsForm1->
这就是Form1的代码,它通知VisualBasic上述定义的对象是用来 保存表单的。关键词WithEvents表示该类可以接收传送来的事件,如前面的FileFound等。
本节将创建并测试自己的 ActiveXEXE程序。
示例中将使用这样一个组件,它是一个有效的文件探测器,
大约每隔60秒检测指定文件的存在性。如何该文件 存在,该组件激发一个事件来调用应用程序,如果不存在,则另作处理。
当然,如果将所有代码写到ActiveXDLL工程,则运行时程 序代码将被挂起直到文件检测代码运行完毕为止。由于ActiveXEXE工程拥有自己的进程空间,代码运行时会自我协调、异步处理,从而不会使其他程序代 码停顿。
下面就来创建:
新建一个“ActiveXEXE”工程;
工程名设为“File”;
添加的类名为“FileCheck”;
下一步,我们需要构造一些用于每隔1分钟左右检测文件的代码。这里将在ActiveXEXE 工程插入一个带有计时器的表单。但该表单不会被显示,因为我们只是使用上面的计时器控件每隔1分钟左右来检测文件,如果相应的文件被检测到,则激发一个事 件。
选择“Project”->“AddForm”;
在表单Form1中添加一个计时器;
在表单代码中添加下列变量的声明:
->PublicFilenameAsString->
该变量用于保存被监视的文件名。
在表单代码中添加下列事 件的声明:
PublicEventFileFound()
该事件只有当前面的文件发现后才被激发。
在Timer1代码中添加下列语句:
-> PrivateSu
BT
imer1_Timer()
IfDir(Filename)“”Then
RaiseEventFileFound
Timer1.Interval=0
EndIf
EndSub->
代码中,首先简单地检测文件,若存在则激发FileFound事件,然后将 Timer1的时间间隔设为0,停止以后的检测。
打开FileCheck类;
在通用声明处添加下列对象的声明:
->DimWithEventsobjFileCheckAsForm1->
这就是Form1的代码,它通知VisualBasic上述定义的对象是用来 保存表单的。关键词WithEvents表示该类可以接收传送来的事件,如前面的FileFound等。
从“Object”下拉列表框中选 择“Class”;
再从“Procedure”下拉列表框中选择“Initialize”;
在 Class_Initialize事件中添加下列代码:
-> PrivateSubClass_Initialize()
篇3:VBCOM基础讲座之发布组件
既然我们构造了这世界上最有魅力的ActiveX组件,就应该把它们发布出去,那么我们该怎么做呢?
幸运的是,发布COM组件是一件非常容易的事。我们只要使用Package&Deployment(打包和展开)向导就可对计算机上的常规VisualBasic工程进行相应的操作,
同样,该向导还适用于ActiveX工程。
但是,发布时只有ActiveX组件本身自己吗?如果不是,那么为何又要运行向导,单独地为自己的ActiveX工程创建一个安装程序?或是连同使用它的应用程序一起发布?对于常规工程来说,简单地创建一个安装,其组件就会自动被打包。
唔,可能就这么简单吧?
篇4:VisualBasicCOM基础讲座之简介
事实上,我们每次设置文本编程控件的Text属性时,就已经在使用COM,同样在DAO数据控件运行 MoveNext方法时,甚至在使用VB控制字时,也都是在使用COM,
那么,什么是COM呢?
首先,COM是一种通信的方式。
例如,就像我们的电视遥控一样。当我们按下某个频道按钮时,电视频道立马切换;而当我们按下开关按钮时,电视立即关闭等等。其实,我们并不关心 它们是怎样工作的,我们只知道按下按钮就能产生某个动作就可以了。
程序的原理也是一样的。当改变文本编程控件的Text属性时,我们并不知道其中的原理,也许系统内部会调用几十个API函数也说不定?但对于用 户来说,则只关心文本编程控件中显示的文本就可以了。
其次,COM是一种重用代码的方式,
使用COM的最大好处是一旦建立COM的通信方式后,可以方便地在任何地方使用多次。例如,当用户创建一个用于显示日期和时间的COM组件后, 就可用于任何程序中的任何地方。不仅VB应用程序、Excel程序可以访问,而且C 应用程序也可以访问它。
所以,COM组件的代码可重用性是最主要的。
再次,COM是基于实际对象的。
用COM创建的大多数组件是基于实际对象的,这就意味着一旦组件被创建,其使用是相当容易的。试想一下,如果我们在计算机系统中再添加一个用 户,又有哪种添加方式如Customer.Add那样简单,是添加数据处理代码包、算法,还是向应用程序添加较大的数据库DLL?很显然,COM就支持这 种简单操作。
所以,COM是一种通信方式、一种代码重用方式以及基于实际对象的。
本教程的以后部分中将简单讨论COM和VB的相关内容,这包括类的创建,以及如何将类转换成一个实际对象。虽然,这里的内容太过简单,但却是以 后COM编程的基础。
★全面总结
文档为doc格式