看你知道不知道之-全局对象

这几天在整理类库,想通过VB6来提供全局函数,将公司常用的函数做一个封装,但是VB6中的Dll是不能提供全局函数的,感觉郁闷。

疑问:全局对象,到底VB6的Dll是否能够提供全局函数呢?

答案是肯定的,只需要将Instancing属性设成GlobalMultiUse就可以了,解释如下:GlobalMultiUse 与 MultiUse 类似,只增加一点:可以把属性和方法视为简单的全局函数来调用。这种方式不必显式地创建该类的对象,它将自动被创建。

全局对象

提供全局实用函数有很大好处。使部件的用户不必首先创建对象的实例。在进程外部件中,这种功能通常被实现为 Application 对象的属性或方法。

如果类的 Instancing 属性标记为 GlobalMultiUse 或 GlobalSingleUse,不必显式地创建其对象的实例就可以调用该类的属性和方法。

例如,假设 SmallMechanicals 部件要提供一个 GlobalUtility 对象,该对象的方法是通用函数。那么只需添加一个类模块到 SmallMechanicals 工程,将类模块的 Name 属性设为 GlobalUtility,Instancing 属性设为 GlobalMultiUse。

然后给这个类模块添加属性和方法。例如,可以实现一个 ReversePolarity 方法以及一个只读的 WidgetCount 属性:

Public Sub ReversePolarity()
   '(为所有的 Widgets 转换极性的代码)
End Sub

在客户端应用程序中,不必首先创建一个 GlobalUtility 对象就可以调用 ReversePolarity 方法:

Private Sub Command1_Click()
   '不需要对象变量。
   ReversePolarity
End Sub

呵呵,用VB6 这么久了,这块总是漏掉了,这样VB6做的DLL总算可以当作静态类来用了。

未完,待续。

原文地址:https://www.cnblogs.com/Duiker/p/328268.html