有关于com+的文章请发到我的hhfh@sina.com 中,谢谢!

hhfh 2001-07-21 05:25:05
有关于com+的文章请发到我的hhfh@sina.com 中,谢谢!
...全文
1870 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shawls 2002-02-25
  • 打赏
  • 举报
回复
COM编程模型上

概述
如果你用ASP做开发, 你可能已经在你的ASP页面中用过COM了.但是,在你自己开发一个COM部件或阅读一本详细介绍COM的书之前,你很可能并没有完全理解COM,因而不能充分利用它来创建你的ASP页面.同时,你也不能很好的理解那些随COM部件带来的使用文档.如果你知道COM的标准和限制,你就可以很快的学会开发其他的COM部件.
在这个教程里,我们将学到COM是怎样工作的,你还将学到精通COM的知识.

本教程的读者
本教程将给那些已经使用过VBscript 语言的,特别是用过ADO但是不知道那就是COM的人详细描述COM模型.他将告诉你:

1.属性和方法的区别
2.属性需要参数吗
3.只读属性是什么意思
4.什么是集合对象
5.每个集合对象都有些什么属性
6.不调用方法如何对集合排序
7.在一个DLL中可以有多少个COM部件.

基础知识
COM是一个对象接口的标准.定义一个COM对象只需要定义方法和属性,没有其他的接口.从一个程序员的观点来看,属性和方法之间没有太大的区别.方法可以带参数,属性不能.属性可以读写,方法如果要返回值的话,是只读的.

尽管从编程角度看,属性和方法没有太大的区别,但是部件开发者用他们完成不同的功能.属性通常代表一个对象的状态,但是调用方法可以完成任何想完成的任务,不管他包含对象的状态与否.

属性
属性不需要参数,用来描述或设置对象的状态.所有的属性返回一个值,有些属性是只读的,有些是可读可写的.下面是VBscript中读取属性的表达式例:

例 1:

value = object.property


注意这里没有用括号.例二是设置属性例:

例 2:

object.property = value


方法
方法可以带参数,可以返回值.通常用来初始化一个对象的事件.当给方法传递参数时,方法可以用来设置值.如果方法只返回值,不设置值的话,表达式如下:

例 3:

value = object.method()


注意例3中用了括号.调用方法来返回值时必须用括号.例如,对象Connection有一个Execute方法返回一个Recordset对象.例:

例 4:

Set RS = Conn.Execute("SELECT * FROM TABLE")


不用返回值,不用参数的方法,如Connection对象的Close方法:

例 5:

Conn.Close


参数
方法可以带一个或多个参数,或一个也不要.但是,参数并不是必需的. 一旦一个参数是可选的,其后的参数都是可选的.例如,参数一和参数二是必需的,参数三是可选的,则参数四必定是可选的.一个很好的例子是Connection对象的Open方法.他有八个可选的参数.前三个用来传递数据库和等录的信息.你可以像例6那样调用Open方法:

例 6:

Conn.Open "DSN","sa",""


为了提供DSN名,用户名,口令为空,你也可以想例7那样调用:

例 7:

Conn.Open "driver=SQL Server;server=yourServerName;uid=someUID;" &_
"pwd=somePWD;database=someDatabase;"


注意在例6中我们用了三个参数,在例7中只用了一个,结果是一样的.

调用方法时,以逗号分隔,让可选的参数空着,将给该参数传递空值,
在例6中,可选参数用缺省值,在例八中用空值.

例 8:

Conn.Open "DSN","sa","", , , ,





以上代码来自: 源代码数据库(SourceDataBase)
当前版本: 1.0.446
作者: Shawls
个人主页: Http://Shawls.Yeah.Net
E-Mail: ShawFile@163.Net
QQ: 9181729


COM编程模型中

集合
集合是本身包含了许多对象的对象集,所有的集合都包含一些预定义的方法和属性.一个集合有一个Item方法,一个Count属性,一个 _NewEnum方法.集合有建立类型与他相同的对象的能力.换句话说,如果一个对象可以被包含进一个集合中,那么,哎,这句话好难,我不翻了,给出原文吧.( In other words, if a particular object can be group in a set then that object will have a collection object that can create an instance of an object within the set. For instance, a Drives collection object will contain a set of drives that might represent all the drives on a particular computer).

Count属性返回一个代表集合中元素个数的长整型值.给Item方法传递一个长整数(当然应在1和Count之间),就返回集合中这个索引所指向的对象.就像数组那样.(原文此处混乱,稍做调整)

例 9(1):

Set Object = Collection.Item(2)

因为Item是缺省方法,所以你也可以如下调用:

例 9(2):

Set Object = Collection(2)



_NewEnum 方法可以反复调用,

例 9:

For Each Object in Collection

Next Object

(以下不译)
Notice that the _NewEnum method is not referenced within the syntax of the
statement in example 6. This is because the _NewEnum method has a special
index that Visual Basic recognizes as being used for the For Next statement. As a
little background, all methods and properties in a COM object are indexed and
certain indexes are used for particular tasks. For example the zero index is used
for the default method or property.
The Default Method or Property
The method or property that has the COM index of zero is called the default
property. Visual Basic allows the programmer to not use the regular
method/property syntax when calling the default value, you can leave the
syntactical call to the method/property off all together. For example, the default
method in all collections is the Item method. If you where going to call the Item
method, you could do it like it in example 9.



为了在ASP中建立一个COM对象,你可以:

例 11:

Set Object Server.CreateObject("SMUM.XCheck.1")


给Server的CreateObject方法只传递了一个参数,就是一个ID值,这是一个由COM部件提供者给出的,唯一地标识一个COM对象的符号.为了创建一个COM对象的实例,你必须知道该对象的ID值.

有另外一种方法可以获得一个对象的实例,你可以用一个已经存在的对象实例来创建一个新的对象实例,事实上使用集合时就是这样工作的,你调用Item方法,返回了一个对象实例.

例 12:

Set Object = Collection.Item(2)


例11和例12有一点是一样的,那就是都是从别的对象创建对象,区别是,CreateObject可以创建任何类型的对象,而Item只能返回集合中的对象.就像先有鸡,还是先有蛋的问题一样,你可能要问,Server对象又是怎么来的呢?事实上,这是内置对象.他存在于ASP当中.


内置对象
ASP中有六个内置对象,他们是:
Server
Request
Response
ObjectContext
Application
Session
这些对象与其他对象唯一不同的是,不需要创建实例.他们与其他对象表现得一样,有自己的方法和属性.因为他们是内置的,所以你不需知道他们的ID,事实上,你根本不需调用CreateObject去创建他们.

对象ID
如果你创建对象的主要方法就是调用 CreateObject 的话,知道对象的ID就非常重要了COM部件提供者在他们的文档里回提供对象的ID的.




以上代码来自: 源代码数据库(SourceDataBase)
当前版本: 1.0.446
作者: Shawls
个人主页: Http://Shawls.Yeah.Net
E-Mail: ShawFile@163.Net
QQ: 9181729




COM编程模型下

(以下不译)
The Documentation
Now that we have established the understanding between methods and properties
along with their different attributes, we need to understand how the documentation
for the objects represents these attributes. For examples, we are going to look at
15 Seconds' component section, which is in the same format as the IIS 4.0
component documentation.
Read and Write Properties
A good example of a read/write property is that of the PhoneTranslate property of
the XCheck object, shown here in example 11:

Example 13
object.PhoneTranslate[= value]
Notice the value syntax, this is the indication of a property that can be written to.
The brackets denote that the property is optional, in other words you do not need
to set the property to use the object. Click here to view the full documentation.
Read Only Properties
A good example of a read only property is the Expires property of the ASPMail
object.

Example 14
object.Expires
Notice that unlike example 11 there is not an equal symbol, indicating this is read
only. Click here to view the full documentation.
Optional Method Arguments
A good example of the optional arguments is the SendX method of the OCXMail
object. The documentation syntax can be seen here in example 12:

Example 12
object.SendX(mailserver[, fromName[, fromAddress[, priority[,
returnReceipt[, toAddressList[, ccAddressList[, bccAddressList[,
attach[, messageSubject[, messageText]]]]]]]]]])
Notice that the only required argument is the mailserver argument. All the rest,
noted by the brackets are optional. Click here to view the full documentation.
Summary
With a fundamental understanding of COM and it's abilities, coupled with good
documentation you can expand the flexibility of your Active Server page
programming. Take the information that you already know about programming IIS
objects, like Session objects and AD
shawls 2002-02-25
  • 打赏
  • 举报
回复
如何用VB6写COM组件

   所幸的是,我们可以用COM组件来在最大程度上扩展ASP的功能。你可知道,任何可以用诸如VB,VC和VJ以及其它的一些程序语言所写出来的东西,都可以被应用到你的网站的开发中去,这就是COM(组件对象模型)。COM能够用来编写能够被ASP所调用的对象。当在VB等编程环境中完成了组件的编制后,就可以放在ASP页面中被ASP所调用了。在这篇文章中,我们将看到如何使用VB6来编写一个COM对象,如何将其注册在服务器上,并在ASP页面中对其进行调用。但在开始之前,让我先来简单的介绍一写关于COM的小知识。

   COM对象通常表现为一个.dll文件,是一个编译好了的可执行程序。这意味着COM的运行速度要比纯ASP代码要快的多。在调用COM对象之前,必须在运行IIS服务器的机器上对其进行注册,而且不能通过ASP代码来注册COM组件,这也就是说你必须有对服务器的使用权限。

   现在来看一看我们要实现的任务:我们需要创建一个组件,当你对它传递一个年份的时候,它能够告诉你这一年是否为闰年。当然,这个任务可以用VBScript来实现的。这儿是用这个简单的例子,只是为了程序的简便起见,从而能够把更多的注意力放在如何创建组件以及如何同ASP进行交互上面。实际上如同上面所说的那样,你可以使用VB的任何功能来创建这个组件。

   首先要做的当然是编写ActiveX dll组建,至于到底如何在ASP中调用它,我们会在后面提及。打开Visual Basic,一个对话框会提示你选择一种新建工程类型,在这儿当然选择“ActiveX DLL”。

   如果工程浏览器没有被打开,可以通过选择菜单栏上面的“视图|工程浏览器”来打开它。如果属性窗口也没有打开,同样的方法,可以打开属性窗口。

   现在在工程浏览器中点击Project1,然后可以在属性窗口中看到工程的name 属性为Project1,把它改为CheckYear。当然如果你很懒的话,你也可保留这些缺省的设置,只需在后边在ASP中调用它的时候,也使用相应的工程名和类名就好了。

   现在在工程中,已经预建了一个缺省的类,你可以按你自己的喜好来重新对其命名。在这儿把类命名为LeapYear。

   在类中填写入如下的代码:

   Option Explicit

   注释:用来判断一个年份是否为闰年的函数

   Public Function IsLeapYear(yr As Variant) As Boolean

   注释:如果年份能够被4整除并且不能被100整除,或者能够被400整除

   注释:那么它就是闰年

   If (yr Mod 4 = 0 And yr Mod 100 < > 0) Or yr Mod 400 = 0 Then

   IsLeapYear = True

   Else

   IsLeapYear = False

   End If

   End Function

   上面就是所需要的全部代码了,其实很简单。下面所要做的,就是把它编译成一个dll文件。在“文件”菜单中选择“建立CheckYear.dll...”,再选择要文件要保存的路径。一般的,可以在在服务器上的InetPub目录下面建一个Server Components目录,专门用来存放所有用于ASP中的组件。但这不是必须的,无论你把dll文件保存在什么地方,在编译的过程中,编译程序都会自动的在系统中对组件进行注册
   如果你的VB和WEB服务器不是在一台电脑上,那么在把dll文件拷贝到服务器上后,如果要让组件能够被使用,就必须手工对其进行注册。

   首先你需要把.dll文件从你开发它的机器上,发送到你的服务器上。一般在www服务器上可以为所有的为ASP写的组件建立一个目录,把那个.dll文件拷贝到那个目录中。比如在InetPUB下建立一个Server Components目录。在完成拷贝后,就可以运行Regsvr32.exe来注册这个组件了。在“开始”菜单中选这“运行”,然后在“运行”对话框中输入regsvr32 和要注册的组件的名称和其完整路径。例如:

   Regsvr32 "C:InetPubServer ComponentsMyComponent.dll"

   就这么简单,在注册成功之后,你会得到一个成功注册的信息。然后,你就可以在ASP页面中引用这个COM对象了。当然,要完成这些你需要有服务器的访问权限,你可以直接在服务器上注册或者通过诸如pcAnywhere之类的软件实现远程注册。

   然后,我们就可以在ASP中调用这个组件了。建立一个ASP页面,并添入下面的代码:

   < % Option Explicit

   Dim oCheckYear

   Dim IsLeapYear

   Dim Year

   Year = 1900 注释:用来检测组件的年份

   注释:建立一个对刚才那个组件的引用

   Set oCheckYear = CreateObject("CheckYear.LeapYear")

  注释:调用组件中的IsLeapYear函数,并报存结果

   IsLeapYear = oCheckYear.IsLeapYear(Year)

   注释:清除对组件的引用,好的编程习惯

   Set oCheckYear = Nothing

   % >

   < HTML >

   < HEAD >

   < TITLE >例子< /TITLE >

   < /HEAD >

   < BODY >

   < %

   注释:打印输出

   If IsLeapYear = True Then

   Response.Write "< P >< b >" & Year & "< /b >是闰年< /P >"

   Else

   Response.Write "< P >< b >" & Year & "< /b >不是是闰年< /P >"

   End If

   % >

   < /BODY >

   < /HTML >

   代码很简单,唯一需要解释的,就是在ASP中如何建立对自建对象的引用。它的语法是:CreateObject("Projectname.Classname")。你应该还记得吧,在前面我们把工程命名为CheckYear而把类命名为LeapYear,因而在这儿的语句就是:CreateObject("CheckYear.LeapYear")。一旦你建立了对对象的引用,你就可以在ASP页面中访问其所有的公有元素了。剩下的,就如同调用其它任何ASP内置对象一样简单了。


以上代码来自: 源代码数据库(SourceDataBase)
当前版本: 1.0.446
作者: Shawls
个人主页: Http://Shawls.Yeah.Net
E-Mail: ShawFile@163.Net
QQ: 9181729
hhfh 2002-02-25
  • 打赏
  • 举报
回复
我怎样调用lei类模块,dll等
举个实例!
众所周知,人工智能是当前最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用能够表现出不同的性能和优势。目前,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据有价值的信息,以便明确客户的需求和指引企业的发展。
众所周知,人工智能是当前最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用能够表现出不同的性能和优势。目前,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据有价值的信息,以便明确客户的需求和指引企业的发展。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧