注册 登录
无忧答案网 返回首页

张老师的个人空间 https://www.ap5u.com/?112605 [收藏] [复制] [RSS] 专业远程教辅导

日志

[转载]VB6的SP6,有2004版,也有2008版,更有2012版,你用的那个版本? ...

已有 353 次阅读2022-3-14 13:38

前言

别整的这么荡气回肠好吧!

VB6不是在2008年就停止更新了么?那时候Windows还是32位主导吧,十多年后的现在,Windows早已是64位的天下了,怎么可能会在Win10/Win11上支持呢?再加上微软官方声明(上图所示)未发布过64位版本的VB6,所以很多人认为,在现在主流的64位Windows上,VB6是没办法玩的。而且,在实践中确实存在有的能安装,有的不能安装,全靠碰运气的现象。

BtOfficer也曾碰到过这类问题,在分享的过程中(可搜索BtOfficer的《BtOfficer之VB/VBA/VBS系列概览(2021版》进行了解),甚至有网友指出,分享和鼓励使用一个都不被系统支持的工具,有谋财害命之嫌。所以,BtOfficer索性就去系统地了解了解,在此将相关结论分享给各位,也让诸位看看这世道得有多险恶。毕竟写程序嘛,不能有太过严重的Bug(确实都没法用了,那还写个毛线),也来不得半点虚假。

一、理解微软的产品周期政策

别动不动就替人做主

『As of April 8, 2008, support for the Visual Basic 6.0 IDE has ended.』这是所谓微软对于停止更新VB6的原话,可以翻译为微软不再支持VB6的IDE,更有甚者神翻译为微软不再支持VB6。BtOfficer认为中立的翻译至少应为『从2008年4月8日起,对 Visual Basic 6.0 IDE 的支持已结束』,但是各位有听到过这样的吗?因为不够爆炸,就不能吸引眼球,这就是所谓流量媒体的话语权!

为什么中立翻译不够爆炸?这就要从微软一贯的产品生命支持周期说起。包括Windows系统在内的Windows主流产品,都遵循5年主流支持和5年扩展支持的生命周期政策。VB6是1998年发布的,到2008年正好十年,是完全符合微软支持政策的。因为,不仅VB6如此,各大操作系统的生命周期亦是如此!

如果中立翻译,就会嘘声一片,达不到新闻的效果。要知道2008年那会儿,互联网才经历过一波泡沫危机。别说自媒体的概念还没诞生,就是现成信息传播也远不如现在。所以,那时候的互联网信息,是存在时空差的。这样,文字游戏就有了市场。直到现在的自媒体时代,这样的『专业搬运家』仍然广泛存在。

一个稀疏平常,被执行了很多年的产品政策,到了有些利益相关者嘴里,就变样了。这样的文字游戏,其实都是在打『误解』的擦边球。尤其对于英文中很多说法,无论是翻译还是读者们自行理解,往往都存在有失偏颇的现象。就像开源协议一样,无论是国内的法律工作者,还是开源的直接参与者,都是道听途说,或者在道听途说的基础上亲自演绎,很少有精确理解的。

这个『support has ended』和『not supported』很像,却不是同一回事,和『can't use』更是天壤之别。所以,很多人很困惑,官方都宣停了,为啥14年后还是可以用?结果,只能归因于『打不死的小强,好神奇』。

深层次的原因,可搜索BtOfficer的《为什么Windows的兼容性这么强大,到底用了什么技术?》,其中有详尽的阐述。但本篇要说的是,一项产品如果是supported的,就得有实际的动作(有投入有产出),尤其是对于微软而言。

在与JAVA的互联网大战中,微软已趋于劣势,这就迫使微软不得不集中更多的资源。然而作为一家企业而言,总投入并非无限的,就免不了要收缩部分产品的投入,比如VB.Net,VB6。既然不能继续投入,那就谈不上是supported的。更何况VB6的商业支持已完成承诺,自然不能硬说仍然是supported的,甚至只能说not supported

官停这事,VB6跟这货一样的

如果这么说,不太好理解,那我们拿WinXP系统来对比。WinXP的扩展支持期过后,微软就官停了,这都过去好些年了吧,但是国内仍然有很大一部分人用XP。官方宣停,更多是指产品的投入到此为止,并不意味着产品的大限已到(不可用)。更何况,以生态兼容著称的微软,怎么可能会阻击自己的用户呢,顶多放任不管!

所以,对于VB6而言,没有不可用的说法,更没有不能安装的说法。

二、再来看VB6的支持政策

VB6的『support has ended』,意味着微软没有持续地投入,也就是说VB6断奶了,不再是金爹的幺儿了,VB6自然不会有新特性啦。尽管如此,微软还是罕见地向大众喊话,别担心,VB团队会确保在所有受支持的Windows上,保证VB6应用程序的"It Just Works”兼容性。

来啊,造作啊,反正有大把的时间!

BtOfficer相信,目前Win11仍然还处于极客们尝鲜的阶段,还有很大一部分人没有过渡到Win10呢。但是,微软对VB6的支持宣言,已经迫不及待地标记到了Win11,请品,请细品!(难道不问为什么吗?)

可能会有人说,那是VB6应用程序,官方也这么说了『The Visual Basic 6.0 IDE is no longer supported as of April 8, 2008.』,没有IDE支持的VB6,确信还有用?没错,微软的确说了没有提供64位版本的IDE,也说了后面的32位版本也不支持。

人是有点渣,但本性不坏,哈哈!

但是抠字眼有什么用呢?后面还有一段大白话呢,VB团队为了测试"It Just Works",对32位版本的VB6IDE,分别在Vista、Win7、Win8/8.1等系统上进行了测试,是OK的。此段不影响IDE的既有支持政策。什么意思呢?原则上VB6的IDE不能是『supported』的了,但兄弟们,用是没问题的,心放肚子里。有些话不能明说,项目组没有资金支持,宝宝心里苦啊,否则64位版分分钟掏出来啊!

如果说XP系统的64位版少有人知,那Vista、Win7、Win8/8.1等系统正是64位Windows的宣传先锋啊。如果说这些系统都是NT6内核系列,兼容运行尚可理解,那Win10/Win11呢?虽然内核版本号改了,但只是重构增加新特性罢了,懂的自然懂。既然这些系统没问题,这就说明,VB6的IDE在64位X86硬件平台上兼容运行是没有问题的。

所以嘛,以32位方式兼容运行在WOW64下,不失为一个低成本兼容策略,不给64位版本也并不会无法容忍。毕竟,WOW64的32位程序,也是64位的嘛(可搜索BtOfficer以下文章:《32位进程是不是64位进程?找个VB6写的程序看看!》《32位的VB使用64位DLL,系统本身就支持哦!》《VB当然能在64位Win上继续豪横!》《VB/VBA(代表32位)如何继续在64位Win上抖机灵(二)? 》《VB/VBA(代表32位)如何继续在64位Win上抖机灵?》)。毕竟,64位的VBA摆起的,编译64位VBA也就临门一脚的事(详见《探秘,64位Office VBA能否与VB6再续良缘?64位VB6能否继续躺赢?》《Office的VBE环境若能编译64位的DLL,VB6岂不是坐拥第二春?》《VBA源码可以编译吗?》)。

三、为何VB6的IDE在后续系统安装上,时好时坏?

如果一个开发工具的安装,都要凭运气的话,那就是在实力劝退了。VB6的IDE停止更新支持,一度被传的离谱,什么没前途,过时,淘汰,找不到工作,应有尽有。甚至到现在,很多自称BASIC老粉的,连VB编译机制和解释机制都分不清而混为一谈的,都大有人在。那VB6的IDE不能在Win7/8/8.1/10/11上安装的说法,就不足为奇了!

为何呢?因为VB6IDE的版本名称很具有迷惑性。大家都知道,VB6IDE最后一个版本名称叫SP6。但是SP6有很多个版本,从2004年到2012年,期间至少发行过4个版本。如读者朋友们安装不上,请问你是哪个SP6版本呢?

如果不是出于研究目的,BtOfficer也曾一度认为要看运气,将其归谬于停更后的不兼容。虽然,BtOfficer从未经历过安装不上的情况,但却因为切换64位Office确实出现了很多诡异的现象。比如,Any关键字不能和ByVal搭配。但经过一番研究,发现问题就出在了SP6补丁的版本上。

为何跟Office有关呢?因为VB6从桌面那波快速开发的热潮中冷却下来后,就专心地为Office当护花使者了。VB系全面转向Office的VBA,是VB5时代就确定下来的战略。不懂这一点的,就很难明白VB的前途,因为人家就不是给你找工作求996福报而设计的。想直接问VB6要饭吃,没得斤两是不行的。想将VBA驱逐进而取而代之的,无疑是痴人说梦!VB/VBA/VBS只会伴随经典桌面Office一起消亡而消亡,这是当年Office架构设计使然的。可供后来的Python,JS开辟的,已经是全新的Office体系了。认识不到这点,有些项目的投资注定只会打水漂。

很多老VB用户,很可能停留在2004或2008年的SP6。这时候的Office还没有64位版本呢,所以32位与64位间的冲突在所难免。Office直到2010版才推出首个32位与64位版本,而两年后的2012年,微软推了两次VB6IDE的SP6的更新。说好的停更了呢?只要Office有需要,分分钟掏出来嘛!

所以,要想更好的兼容64位Windows环境,请使用2012年8月份的SP6,不仅安装更迅速,很多奇奇怪怪的东西也消失的无影无踪。再也没有所谓安装会出错,忽略不管,结束后也可用的奇葩现象了。当然更不必安装虚拟机,套壳子了,真省事!

看完本文,在64位Windows上还你一个安静的VB6。BtOfficer目前正在对VB6的运行时进行扩展,解决坊间对VB6的各种诟病,让VB6拥有Delphi那样的专业特性。目前,已扩展部分能够在不破坏VB的易用性的基础上,提高VB语句、内置函数等10倍左右的性能。关注后续内容,还你一个VB666!

欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面),有严肃而枯燥的技术,也有轻松的唠嗑,更有现成工具等你来拿,期待你的加入!


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-4-29 02:10

Powered by 无忧答案网 X3.5

Copyright © 2018-2020 Design: Ap5u.Com

返回顶部