`

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

 
阅读更多

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

未完,待续。

分享到:
评论

相关推荐

    定义全局对象文章代码

    V8是JavaScript的高效实现,它对全局对象的处理有其独特之处: 1. **优化编译**:V8使用即时编译(JIT)技术,将JavaScript源代码编译成机器码,以提高执行速度。全局对象在V8中的处理也经过优化,确保快速访问和...

    Python全局变量-全局变量命名的建议

    Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和...

    通过全局对象传递数据

    - **内存泄漏**:全局对象会随着应用程序的运行而一直存在,如果不注意管理,可能会导致内存泄漏。 - **数据安全性**:全局数据容易被其他组件访问,如果包含敏感信息,需谨慎处理。 - **数据一致性**:多个线程...

    对象介绍(全局、基本、DOM对象)TXT阅读文档

    对象介绍,全局,基本,DOM对象,TXT阅读文档 对象介绍,全局,基本,DOM对象,TXT阅读文档 对象介绍,全局,基本,DOM对象,TXT阅读文档 对象介绍,全局,基本,DOM对象,TXT阅读文档 对象介绍,全局,基本,DOM...

    c++导出全局对象VS2008

    C++标准并不直接支持导出全局对象,但我们可以利用预处理器宏和C++的extern关键字来实现这一目标。VS2008提供了一个特殊的宏`__declspec(dllexport)`用于导出,而在使用DLL的客户端代码中,使用`__declspec...

    asp.net 视频--全局水印代码.rar

    2. **处理请求**:在HttpModule的BeginRequest事件中,检查请求的URL,看是否需要处理(比如只有图片需要加水印)。 3. **读取原始资源**:如果请求的资源需要加水印,读取该资源到内存,通常是通过...

    全局获取Activity对象

    通过设置全局获取栈顶对象 ,从而进行各种需要activity 对象的实例操作,进行相关操作通过设置全局获取栈顶对象 ,从而进行各种需要activity 对象的实例操作,进行相关操作通过设置全局获取栈顶对象 ,从而进行各种...

    C++程序的生与死,C++中的四种对象(全局对象、局部对象、静态(static)对象、以new方式产生出来的局部对象),以及在C++中有四种方法可以产生一个对象

    对象根据其存储位置的不同,可以分为四类:全局对象、局部对象、静态(static)对象、以`new`方式产生的局部对象。每类对象都有特定的生命周期,即它们的创建时机与销毁时机有所不同。 #### 全局对象 全局对象是指...

    14-全局变量.pdf

    5. **console**:这是一个提供多种输出方法的全局对象,如`console.log`、`console.error`等,用于在标准输出(stdout)和标准错误(stderr)中打印信息。 6. **exports**:这个对象是`module.exports`的快捷引用,...

    全局对象构造与析构机制剖析

    全局对象构造与析构机制是C++编程语言中一个关键且复杂的主题,尤其是在ELF格式的可执行文件中。在C++中,全局对象是指在任何函数外部声明的对象,它们在程序启动时自动进行初始化,并在程序结束时自动进行清理。...

    V8定义全局对象文章代码

    这个对象在每个独立的执行环境中都是独一无二的,这意味着在浏览器的多个Tab或不同的Node.js进程之间,全局对象并不共享。 1. **全局变量与全局对象** 在V8中,当你声明一个全局变量,例如`var x = 5;`,这个变量...

    11课 NodeJS基础-第1天-{ 全局、核心对象、异步IO }.rar

    在本课程中,你将学习如何使用Node.js的全局对象,如`process`和`console`,如何导入和使用核心模块,以及如何进行异步IO操作。例如,你可以使用`fs.readFile`或`fs.readFileSync`(同步版本)读取文件,`...

    Spring Boot 系列教程6-全局异常处理

    在Spring Boot应用中,全局异常处理是至关重要的一...通过以上步骤,你可以在Spring Boot应用中实现全面且优雅的全局异常处理,确保系统在出现问题时仍能提供一致的反馈,增强用户体验,同时便于开发者调试和排查问题。

    定义全局变量 变量 全局

    你可以将需要全局访问的变量和函数作为此类的成员变量和成员函数。虽然严格来说它们不是真正的全局变量和函数,但由于CxxxApp类的实例在整个应用程序中是单一的,因此可以通过AfxGetApp()函数获取其指针,从而在任何...

    Duktape导出全局对象文章代码

    2. **导出C函数**: 要将C函数导出到JavaScript,你需要首先定义C函数,然后使用`duk_push_c_function()`将其转换为Duktape函数指针,最后使用`duk_put_prop_string()`将其绑定到全局对象的一个属性上。这样,...

    VB 全局级过程举例

    全局级过程,也称为全局函数或全局子程序,是在VB项目中定义的、不受特定对象限制的代码块。它们存储在标准模块中,可以在程序的任何地方被调用,无需通过特定对象实例来调用。这使得全局过程成为共享代码和实现跨...

    MyBatis-2 全局配置文件

    在MyBatis中,全局配置文件(通常命名为`mybatis-config.xml`)扮演着核心角色,它为整个MyBatis框架提供了基础设置,定义了数据库连接、事务管理、类型别名、对象工厂等关键信息。接下来,我们将深入探讨这个全局...

    Delphi全局对象的创建

    全局对象在什么时候创建也是有讲究的,如果在调用之前尚未创建肯定会报错,那么下面通过调用函数间接调用全局对象的方法就不会有任何问题了。 var FUserInfo: TUserInfo = nil; function UserInfo: TUserInfo; ...

    matlab开发-使用全局分析进行研究竞争对象检测的计算机视觉

    在计算机视觉领域,全局分析是一种重要的技术,用于识别和检测图像中的特定对象。在MATLAB环境中,这种技术被广泛应用于各种应用,包括自动驾驶、无人机视觉导航以及物体识别等。本项目,"matlab开发-使用全局分析...

    002全局对象测试.7z

    标题 "002全局对象测试.7z" 暗示了这是一个关于 C++Builder 开发项目的压缩包,其中包含了项目文件和源代码文件。这个项目可能是在进行全局对象的测试,以理解它们在程序生命周期中的行为和用法。全局对象是在程序...

Global site tag (gtag.js) - Google Analytics