zoukankan      html  css  js  c++  java
  • 看你知道不知道之-全局对象

    这几天在整理类库,想通过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总算可以当作静态类来用了。

    未完,待续。

  • 相关阅读:
    Java不带.classpath的svn项目下载,转成到eclipse中
    eclipse 实用快捷键(最全)
    加密算法IV的作用
    Hadoop环境常用命令
    Centos网络配置
    apache指定的网络名不再可用
    Toritoisegit记住用户名密码
    用JavaScript修改CSS属性的代码
    div 旋转
    过滤器、监听器、拦截器的区别
  • 原文地址:https://www.cnblogs.com/Duiker/p/328268.html
Copyright © 2011-2022 走看看