当前位置:首页 > 实用技巧 >

vb窗体模块有什么特点(vb窗体处理过程是什么)

来源:原点资讯(www.yd166.com)时间:2023-11-05 17:07:43作者:YD166手机阅读>>

前言

vb窗体模块有什么特点,vb窗体处理过程是什么(1)

三岁知老,变量看长

正如BtOfficer在《》中所说,任何一门高级开发语言,都离不开变量。通过变量,编程语言才能搬运和表达我们的小心思。变量是机器指令,语义化的第一步,却是高级开发语言进化的一大步。

想必各位读者对定义变量,早已是烂熟于心,驾轻就熟。与变量最相关的概念中,作用域,也就是作用范围算是比较突出的1个。作为变量的修饰语,有局部变量,有模块变量,更有全局变量之分。

其中,很多人又特别亲睐全局变量,BtOfficer甚至见过为了减少变量声明,而使用全局变量的。可见,全局变量的特性深得人心。但是,BtOfficer也特意检索了下互联网,对于定义全局变量的问题回答中,几乎都是新开个标准模块,定义在标准模块中。

BtOfficer在《》中说,有种懒叫VB,你不懂!要是定义个全局变量还如此颇费周章,VB/VBA也谈不上任性吧。全局变量既然如此“好用”,那定义全局变量需要注意什么?在哪儿定义?终归是要搞明白才行,那本篇就将BtOfficer自己的理解分享给大家伙。

一、全局变量

vb窗体模块有什么特点,vb窗体处理过程是什么(2)

变量类型概览

全局变量,顾名思义,就是整个应用程序的代码均可使用的变量,不仅跨函数代码块,还能跨线程,在应用程序(进程)整个生命周期内均有效,且具有全局唯一性。与全局变量相对的是局部变量,如函数中定义声明的变量,仅当函数调用时有效,不同函数的局部变量名可以相同。

了解函数机制的朋友,应该清楚,通常局部变量在栈上由系统自动分配所需内存,并自动回收相应内存。局部变量的生命周期,由堆栈平衡机制来巧妙实现的。而作为全局变量,其特性与局部变量迥异,自然其实现机制也是不同的。

全局变量需要在内存地址空间中,找1个固定的位置,所需内存在进程初始化的时候就分配,直到进程被销毁时才回收。唯有这样才能简单地满足全局变量的特性,否则就要使用句柄那样的复杂机制。事实上,全局变量存储于静态(通常为Data)段中,是一个非动态的概念。

二、全局变量值得关注的作用

vb窗体模块有什么特点,vb窗体处理过程是什么(3)

被口诛笔伐的,往往都是好东西!

1、可提升VB/VBA代码的安全性

VB/VBA编译后,全局变量可防堆栈跟踪,使得代码逻辑更加隐秘,从而加大分析难度。

2、是VB/VBA多线程中最便捷的数据同步通道

进程有进程的资源,线程也有线程的资源。不同线程数据交互时,通常比较麻烦,但进程资源是所有线程共享的,而全局变量就属于进程资源。所以,线程可通过全局变量进行非常便捷的数据同步。

3、利用写时复制,可构建出非常精巧的数据结构

写过VB程序的,对ActiveXEXE一定不陌生,在这类PE中全局变量会失效,相信也不陌生。其实,这就是写时复制。利用其特点,可以构建出多维代码逻辑空间,对于VB/VBA应用的安全保护,具有意想不到的效果。

除此外,还有很多使用场景,欢迎关注BtOfficer交流。当然,全局变量就像GOTO一样,是一柄双刃剑,只有合理利用,才有价值!不信,继续往下看。

三、全局变量只能定义在标准模块中吗?

如果只能定义在标准模块中,那还值得BtOfficer来写一篇么?在展开之前,先说几句题外话。

当用户打开VB/VBA的IDE时,什么都没做的情况下,是不是就可以使用App对象、Err对象、Screen对象、Clipboard对象、Debug对象等数十个对象!

vb窗体模块有什么特点,vb窗体处理过程是什么(4)

当用户想要构建应用工程,点开快捷菜单中的『插入』菜单时,用户窗体、模块和类模块选项,便位列眼前。这些是VB/VBA代码最常用的寄宿空间。用户同样不需要额外地付出什么、消息泵、接口之类的就已经躺好,等着上代码,下仔了。

这些都是VB/VBA工程全局的概念,正是这些全局因素,才让VB/VBA编程环境,变得异常轻松,这也是VB/VBA懒的一面。那些说VB/VBA语法老套的,那去看看WPS的JS宏吧。

既然,Form、模块和类模块是全局对象,那自然就可以全局访问。只不过标准模块,比较特殊,使用时通常不需要携带模块名,而其他全局对象需要携带对象名而已。事实上,规范的VB/VBA代码,使用模块对象时,都应该带上模块名。

总而言之,Form、模块和类模块,以及VBA所在宿主提供的全局对象,如Excel的Sheet对象和ThisWorkBook对象,都是可以定义全局变量的。

四、全局变量的定义位置,有哪些启示?

vb窗体模块有什么特点,vb窗体处理过程是什么(5)

扩展了对象

为了说明问题,先来看一段简单的演示。从该演示中,我们可以看到,公共变量扩展了公共对象实例的成员。BtOfficer在《》中说,函数包括Function函数,Sub是过程,Property属性,函数名就是1临时变量。

vb窗体模块有什么特点,vb窗体处理过程是什么(6)

VB/VBA函数名与变量并无本质区别

事实上,借用上述启示,我们可以给上述全局对象增加特性、甚至覆盖已有的特性。这不比所谓Hook黑科技来得低端。若利用轻量对象,可以打包任意代码块为对象,进而有效扩展AdressOf的应用范围。

欢迎关注BtOfficer,还有更多有趣且深入的内容哦!等打好概念的基础,就要正式进入VB/VBA凶残且凶险的一面了哦。

扩展阅读:

《》

,

栏目热文

vb中属性窗口的两种显示方式(vb中打开属性窗口的方法)

vb中属性窗口的两种显示方式(vb中打开属性窗口的方法)

在启动Visual Basic 6.0之后会出现如下界面:根据上图中的编号来介绍各个模块:1 :标题栏:包含工程的名字。...

2023-11-05 16:58:01查看全文 >>

vb窗口的主要组成(窗口主要由什么组成)

vb窗口的主要组成(窗口主要由什么组成)

1. 按钮添加按钮:可以在控件栏双击按钮图标添加,也可以单击按钮,然后在窗体中按住鼠标左键在窗体中绘制按钮,其他控件同理...

2023-11-05 16:44:39查看全文 >>

vb窗体属性说明什么(vb窗体常用属性简要介绍)

vb窗体属性说明什么(vb窗体常用属性简要介绍)

(Name) 窗体的名称 ActiveControl 返回焦点所在的控件,该属性设计阶段不可用,运行时只读。 Appe...

2023-11-05 16:31:26查看全文 >>

vb代码窗口主要包括哪几部分(vb界面左边默认是什么窗口)

vb代码窗口主要包括哪几部分(vb界面左边默认是什么窗口)

年底单位忙起来了,各种总结、考核资料,是不是所有单位都是这样,年底了各种稀奇古怪的工作突然冒出来了,甚至有的工...

2023-11-05 17:04:45查看全文 >>

vb窗体三种属性(vb中窗体可以使用的方法)

vb窗体三种属性(vb中窗体可以使用的方法)

VB主要包含主窗口、窗体设计器窗口、属性窗口、工程资源管理器窗口、代码窗口、窗体布局窗口、立即窗口、工具箱窗口。每日I积...

2023-11-05 17:15:52查看全文 >>

vb程序设计窗体的属性教程(vb程序设计如何更改窗体名)

vb程序设计窗体的属性教程(vb程序设计如何更改窗体名)

学习界面设计的4个对象:窗体、命令按钮、标签、文本框1、窗体Form 窗体文件扩展名.frm窗体是放置VB提供的各种控件...

2023-11-05 17:01:48查看全文 >>

vb属性窗口用于什么(vb的属性窗口怎么打开)

vb属性窗口用于什么(vb的属性窗口怎么打开)

VB编程技巧几例1 文本框内容的自动选择。在软件安装等一些场合需要将文本框中的内容自动选择,比如选择确省安装路径,在VB...

2023-11-05 16:50:31查看全文 >>

成人37度浑身酸痛(成人37度感觉全身酸疼是怎么回事)

成人37度浑身酸痛(成人37度感觉全身酸疼是怎么回事)

因为新冠,发烧被空前的关注起来,接到越来越多朋友的咨询,才发现大家对发烧其实存在着很大的误区甚至可以说是肓区。先说我家接...

2023-11-05 17:17:26查看全文 >>

下午体温老是37.2-37.4(下午体温偏高什么原因)

下午体温老是37.2-37.4(下午体温偏高什么原因)

近几年来我常会生一种怪病,那就是长期低烧,体温总在37.2到37.4徘徊,这种病很难受,首先是生理上的,比如头里昏昏的,...

2023-11-05 16:49:39查看全文 >>

体温37.1是癌症的症状(体温37度左右老觉得浑身发烫)

体温37.1是癌症的症状(体温37度左右老觉得浑身发烫)

发热,老百姓俗称发烧,是每个人都经历过的事情。我们人类属于恒温动物,体温异常升高往往预示着疾病的到来。从正面角度看,发热...

2023-11-05 16:57:47查看全文 >>

文档排行