VB/VBA的虚拟机(二)

admin 2025-11-21 阅读:30 评论:0
经典,岂是三五句话能说明白 前言 在《VB/VBA的虚拟机(一) 》中,已讲到VB6.EXE进程所加载使用的支持库,为了将VB/VBA的虚拟机给大家伙讲到更清楚,以支持库名为小节点进行组织。那么(一)中的VB6IDE.DLL部分,列为『(...

vb_VB6EXE用到的库_VBA6DLL导出函数

经典,岂是三五句话能说明白

前言

在《VB/VBA的虚拟机(一) 》中,已讲到VB6.EXE进程所加载使用的支持库,为了将VB/VBA的虚拟机给大家伙讲到更清楚,以支持库名为小节点进行组织。那么(一)中的VB6IDE.DLL部分,列为『(1)VB6IDE.DLL』,后续的VBA6.DLL部分列为『(2)VBA6.DLL』,其他以此类推。

诚如已讲,VB6IDE.DLL为VBIDE的资源库,几乎是个纯资源库,不支持自动化COM接口。这进一步证明,该库不是咱们要分析的主角儿,因为VB/VBA的IDE本身就是依赖COM接口的。

好了,接着继续。

三、VB/VBA的虚拟机

(一)VB的虚拟机

2、VB6.EXE用到的库

(2)VBA6.DLL

既然VB6IDE.DLL已被排除,那再来看看VBA6.DLL吧。毕竟对很多人来说,VB与VBA之间总有那么点隔阂,本文也正是要将二者的区别和联系说清楚滴。用PEView打开VBA6.DLL:

VBA6DLL导出函数_vb_VB6EXE用到的库

咋一看,就知道有事情要发生

看到Engine那样的名称,再看几十K的尺寸(历史上BASIC的虚拟机就几十K),应该是虚拟机无疑了。再看看导出函数

vb_VBA6DLL导出函数_VB6EXE用到的库

是函数好用,还是COM接口好用?

Eb和Tip系列,根据名称可以判断是跟IDE有关的函数。剩下的主要是rtc系列了。再看其导入DLL,包括ole32,oleAuto32,Gdi32,User32,Kernel32和AdvApi32,都是些系统DLL,这说明VBA.DLL对非系统资源没有依赖,是很独立的。也就是说上面的导出函数都在VBA6.DLL中实现。

上述导出函数,是不是没用过,感到很陌生?那我们再来看看其COM接口的情况:

VBA6DLL导出函数_VB6EXE用到的库_vb

熟悉的配方,熟悉的味道

有没有感觉眼前一亮?这不正是VB语句的原材料么?我特地确认过,每个接口都是在VBA6.DLL中实现的。值得一提的是,前段时间有网友批评VB没有文件系统支持,这下可以实锤了吧!

前面给大家分享的《VB/VBA中的函数whatsapp网页版登录,用了那么久,其实是这样的 》里,初步交代了函数在编码中的作用whatsapp官网,也初步点出了标准函数与COM接口函数之间的微妙关系。那借着这儿的对比,继续讲讲函数那些事儿。

为什么VB不使用导出函数,而是使用COM接口函数?

要知道使用导出函数几乎是C的标准做法,不兜圈子,不仅高效,也更容易让开发者明白。但是,这就不得不动用函数指针的概念。有了指针,这个门槛就高了N个高度。这就牵扯到了计算机设计中的一个悖论:人容易的,永远没有人不容易的高效。也就是说,离硬件越近,离人就越远,效率越高。反之,离硬件越远,离人越近,效率相对就越低。

其实造成这一悖论的,是计算机硬件发展的技术路线问题。现有的通用计算机,有个通识,那就是冯诺依曼架构,确切地说都是冯诺依曼和哈弗架构的融合体。但,这是针对工业生产而言的,如果从更抽象的角度来理解计算机,从最原始的算盘,机械、机电结构,到现在的超大规模集成电路,其实本质上一直未发生过变化。也就是说,计算机的发展,其实是线性堆垒的。后来者,无论有多么光亮,它都是站在前者的技术上的。

这就是为什么C最后成了各种开发语言的基座。作者,早前讨论了C的精髓是什么的问题whatsapp网页版,很多人将指针视若圣经,这在战术层面,的确如此。但在战略层面,C的精髓,在于它随时能游走穿插在计算机发展的账本中,找到适合的支撑点。这是更上层封装语言,很难办到的。

扯远了,使用COM接口函数,其实就是为了降低使用门槛。大家觉得VS好用,其实跟VB/VBA的IDE是一个道理,那就是基于COM。COM的特点是,制造它很麻烦,但是使用它却很适合人类。对于VB/VBA的定位,非COM莫属。

前面分享的文章《VB的任性,从Variant开始 》,其实Variant的核心就是COM。VB/VBA能够让各路IT盲,也能玩一手代码,COM在背后功不可没。COM是构造更符合大部分人的人机交互的利器,是机器走向大众的有效技术路线。这就是为什么,COM会始终是Windows的基石。

对于人机交互,业界其实阵营很分明。以Linux的CUI是一派,以Windows的GUI则是另一派。其实,没有必要争论那个好,那个不好!因为这是计算机硬件发展本身带来的。Linux天生就只适合专业技术人员,你的内核架构,就决定了很难做出Windows那样低门槛的技术产品。Windows的内核架构,在纯性能层面,也很难超越Linux。但是,硬件升级带来的巨大性能缓冲,足以让Windows胜任人事儿的方方面面!

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

热门文章
  • 详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略

    详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略
    一、下载与安装WhatsApp WhatsApp是一款全球使用范围极广的即时通讯软件,不仅可以实现文本聊天,还能进行语音、视频通话WhatsApp中文版,发送文件等功能。由于众所周知的原因,国内用户想要下载和安装WhatsApp可能会遇到一些困难。不过,只要按照以下步骤操作,就能顺利完成WhatsApp的下载和安装。 首先,我们需要解决的是下载问题。由于WhatsApp在国内的应用商店无法直接下载,所以我们需要寻找其他的下载途径。Android用户可以选择到各大安卓市场搜索下...
  • 苹果IOS5.1.1机完美越狱

    苹果IOS5.1.1机完美越狱
    越狱工具下载:(需手动复制: http://bbs./read-htm-tid-4804612.html ) 详细的越狱教程: Absinthe 2.0.4的越狱方法与Absinthe 1.0的越狱方法完全一样,非常简单的“傻瓜一键式”。不过这里绿毒有说明,最好重新刷固件。支持越狱设备IOS5.1.1的固件下载地址请点击本站的IOS固件下载,看下图: 下载完固件之后,把设备连接iTunes,开始刷固件。你也可以选择不刷,但是在越狱的过程之中,新的系统在越狱时会比较的顺利,...
  • 电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹

    电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹
    1. 怎么找到微信聊天图片在哪个文件夹里 图片保存路径:/storage/emulated/tencent/MicroMsg/WeiXin/文件夹,这个是完整路径。而在文件夹中只需要找到/tencent/MicroMsg/WeiXinWhatsApp中文版,就可以了,前面两个文件夹是系统根目录。以下是保存及查找图片的方法步骤介绍。 第一步、找到桌面的微信APP,直接点击打开这个微信的APP。 2. 电脑微信图片保存在哪个文件夹 个人微信文件夹。 电脑版微信聊天的图片,都保存到...
  • Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式

    Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式
    Meta(最近更名为 Meta AI)悄然宣布,WhatsApp 将在 Windows 11 上放弃 UWP(WinUI)WhatsApp中文版,退回采用基于 Chromium 的容器。这意味着 WhatsApp 又回到了几年前的样子。由于 web.whatsapp.com 一直领先于 Windows 应用开发,它确实拥有一些新功能,但速度更慢,占用更多内存。 如果独立开发者因为无力维护所有平台的代码库而选择 Web 应用程序,那是一回事,但当像 Meta 这样价值万亿美元...
  • 小米下載WhatsApp的完整指南:安装与使用注意事项

    小米下載WhatsApp的完整指南:安装与使用注意事项
    综上所述,确保您的小米手机具备以上条件,将有助于您顺利下载和安装WhatsApp,享受便捷的通讯服务。在满足这些条件后,您就可以按照后续步骤进行WhatsApp的下载和安装。 2. 下载和安装WhatsApp的具体步骤 在小米手机上下载和安装WhatsApp的具体步骤相对简单,但需注意一些特殊情况。首先,确保你的手机系统已更新到最新版本,以保证最佳的兼容性。由于安卓手机商店内无法直接找到WhatsApp,你可以通过APKPure等第三方应用商店进行下载。打开APKPure应用...