vb,我想对你说,垃圾

最近做一个项目是vb方面的,vb6.0写的程序,除了分析底层,也写了程序,觉得vb确实不靠谱。vb写小程序还是可能。计算量一大,就不行了。

vb解析型语言效率低,用了很多msvbvm函数,不停地穿越到vbvm虚拟机函数,效率很低,比如for循环,就用了__vbaVarForInit初始化for循环和__vbaVarForNext更新循环变量因子,不过这个没什么,就是效率低一点吧。我用vb写了一个循环计算,运行一两次没问题,运行了多次以后,循环因子已经走到结束了,可是没有更新,继续不断循环,结果导致程序卡死,这就是很多人用 vb写程序会卡死的原因,我深入分析调试,发现确实是__vbaVarForNext没有同步运行,循环因子没有增加从而退出循环。为什么会导致这样呢,难道是因为多核多线程导致__vbaVarForNext没有同步更新循环因子?最后代码加入循环结束不更新特别处理才避免无限循环。真正的编译型语言,循环只用一个临时变量记住,更新后跳回开始地方,而不是穿越到虚拟空间。

接着就是类型定义不靠谱。vb变量不需要定义类型,即使定义了也没用,只有在传递参数的时候才强制类型不通过,而定义了一个a=2,这个没有问题,但是定义一个c=&H88888,就会曝出溢出错误,可是我在前面一定定义了long类型,为何还溢出呢?深入底层发现,它会调用一个__vbaI2I4函数,就是把H88888从4字节整数转换成2字节整数,所以报出错误。如果两个大的整数相乘,远远大出4字节整数,这时候报出错误,没有办法了,还不知道怎么写代码,因为后面要处理比特位,需要整数,如果转换成浮点数,又不知道怎么转换回整数做位处理,vb浮点数不能位处理。在c语言溢出直接截掉超过的字节就可以了。我觉得这里的dim定义类型就是个摆设。

最后很多功能用vb实现简直太难了,甚至不可以做到。不说这个I2I4转换让人无法大整数赋值,就是浮点数转换成4字节整数,就很难了,我也没搞定。只有用c语言实现,其实是这样的

float
Time =84729.06;

DWORD pEcx,*pDWord;

pDWord=(DWORD*)&Time;

pEcx=*pDWord;

pEcx就获得了84729.06浮点数4字节内存数据。vb可以用memcopy似乎也可以实现,不过总是太麻烦。就说前面溢出整数,用浮点实现没问题,再转回整数不知道怎么做。

VB搞了很久,没办法,只好用vc写,结果程序很简单就写完了。最重要的是,即使用vb写完了,如果计算量一大,就会出现程序卡死现象。

vb编辑器还经常是一行代码没改好就弹出语法报错,按确认都受累了。有点类似易语言。

通过这个项目,我想对vb说,你很垃圾。现在似乎没有vb了,而是vb.net,但是vb.net又引入200个关键字,人们还是对他有意见。

内存操作c/c++最强,类库强大语法清晰的是java/c#,文本处理可能是perl,网页和数据库处理最快捷是php,做界面最容易应该是delphi/c++builder。

但是vb什么都不是,只能做界面处理和简单计算,否则你会生不如死,早早放弃好。

vb,我想对你说,垃圾

时间: 2024-08-27 00:32:09

vb,我想对你说,垃圾的相关文章

记一次关于垃圾回收app的推广成功案例

破烂大王,早几年前特别能赚钱的行业,无论是废弃的纸张,还是废弃的金属家电,这些大部分人看起来不起眼的破烂,真实利润其实是非常高的,前几天,我一个朋友的公司,成立了一个新的物联网公司,想把传统的垃圾回收转变成智能化,机器化,通俗的讲,就是在公共场合,办公区,小区,设里垃圾回收的机器,居民可以把垃圾投入机器,机器就会自动生成相应的积分获取货币,直接完成垃圾回收,这算是一个绿色环保的公益事业,所以接到这个项目以后,我们也是实地考察,随后制定了推广策略. 这个项目包含,智能设备的投放,智能APP的普及,

小胖李的面试之旅

#0 序 一切过往,皆为序章 ---莎士比亚 #1 起因 10月1日之前就发现经常在半夜出现突发性恶心,并且伴随一股及其刺激性的液体反流到嗓子,痛苦的睡不好,10月1日之后找了一个时间去了一趟医院,检查出来: 慢性萎缩性胃炎, 食道炎, 中度脂肪肝, 胆结石 并且伴随胃食管反流.大夫说,别看你胖,你的饮食肯定非常不规律,超出一般的不规律性,然后一寻思也对,每天除了早饭在酒店吃的比较准时,其他时间什么时候吃饭都不知道.开了一大堆药,让我回家好好养一段时间. 我也和项目经理说,生病了,在家待一段时间

[翻译]理解C#对象生命周期

看到网上的一篇讲C#对象生命周期(Object Lifetime)的文章,通俗易懂,而且有图,很适合初学者学习,就翻译过来了.后来发现这是Pro C# 2010 and the .NET 4 Platform的第八章中的一部分.(感谢 大乖乖 提醒).文中的专业名词第一次出现时,括号里会标注对应的英文单词. 请尊重作者劳动,转载请注明出处:http://www.cnblogs.com/Jack47/archive/2012/11/14/2770748.html. ----2012年11月15日修

微信生态圈盈利模式分析

微信,从诞生起到现在已经有大约6亿的用户量,装机量打到90%,如此巨大的用户数量给微信带来了巨大的商机,微信也在庞大用户量的促进下发展得越来越多元化.到现在微信与其说是一个社交软件,更接近一个移动端媒体平台,腾讯依靠对微信公众平台的开发,微信的本质已经不单单是社交软件,亦不是媒体,它已经进化成了一个媒体平台——众多企业帐号.自媒体活跃于之上,用户选择性地关注并阅读. 微信从2.0开始,加入了语音功能,快速便捷的语音聊天直接改变了人们对传统社交应用的看法,也为微信在短时间内获取了大量的用户群:3.

第十四节:线程劫持

本章前面讨论了垃圾回收期算法.但是,这些讨论有一个很大的前提:仅有一个线程运行,在现实世界,经常会出现多个线程同时访问托管堆的情况,或至少有多个线程同时操作托管堆中分配的对象.一个线程引发垃圾回收时,其它线程绝对不能访问其他任何对(包含他们自己线程栈上的引用),这是因为垃圾回收器可能移动对象,更改其内存地址. 因此,当垃圾回收器想要开启一次垃圾回收时,正在执行托管代码的所有线程都必须挂起.CLR使用几种不同的机制来确保安全的挂起线程,使垃圾回收期可以正常执行,之所以存在多种机制,目的是尽量保持线

从共享充电宝强制下载应用看,共享行业应如何保证安全?

共享经济的全面爆发,让所有人都瞠目结舌.似乎在共享的概念被广泛接受之后,所有生活中可见的东东都能被共享.从大的汽车.单车,到小的雨伞.充电宝等,几乎"无物不共享".但就在互联网行业喜气洋洋地迈入共享大时代时,接连传出的有关安全层面的问题,却给其泼了一头冷水. 近日,有网友反映在使用公共充电桩对手机充电后,手机中被强制下载了三款应用.而类似的事,早就不是第一次发生.通过这样的方式下载的应用,可以想象是怎样的"垃圾应用",甚至有可能是病毒应用.扣费应用,损害大众的个人信

肯威尔伯|人生中的阴影

人生中的阴影-----选自:<生活就像练习>[美]肯·威尔伯著 每个人都熟悉“身心灵”这个概念,但ILP在其中加入了“阴影”的概念,并把它视为所有真正的整合式练习的核心元素.身体.心智.灵性和阴影,是练习所要求包含的底限,否则转化过程将很难持续,这个原因目前尚不为人所知.而我们首次提出阴影的概念,则是因为其他方法都严重忽略阴影. “阴影”一词指心理的“黑暗面”——我们分割.拒绝.否认.隐藏的部分,我们投射到他人身上的部分,或者与之断绝关系的部分.在心理治疗的语言中,阴影是“被压抑的无意识”,我

Linux 上使用 Gmail SMTP 服务器发送邮件通知

导读 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息.邮件信息可能是邮件简报.状态更新(如 Cachet).监控警报(如 Monit).磁盘时间(如 RAID mdadm)等等.当你要建立自己的 邮件发送服务器 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦. 谷歌的 Gmail 服务就是最可靠的 免费 SMTP 服务器 之一.想要从应用中发送邮件通知,你仅需在应用中添加 Gmail 的 SMTP 服务器地址和你的身份凭证即可.

看CleanMyMac怎么清理mac系统磁盘

相信许多Mac用户都和小编一样挺关注Mac电脑磁盘占用情况的.当读取速度变慢的时候,你就得查看磁盘空间了.如果你发现被占了很大的空间,就得清理mac的系统磁盘了. 一.查看mac系统磁盘空间 1.查看 OS X 中“其他”部分大小,点击顶部苹果菜单,并选择“关于本机”项. 图片1: 查看mac磁盘储存信息 2.接着选择窗口中间的“存储”选项卡.即可发现 Mac 电脑的磁盘空间分布情况,可见“其他”部分(蓝色)相对来说还是不小的. 图片2:mac磁盘储存信息 注:OS X 可以识别应用程序.备份.

FastReport扩展类

题记: 最近有在用FastReport进行开发报表工作,当然也有在看书,突然想到可以用书中所写来实现一个fastreport的帮助类. 对于引用第三方类库,我们都会去将这个库在调用前进行相应的封装,也就是所谓的程序提供者模式.对第三方进行封装,当需要改变第三方(使用”第四方“的时候)不会影响到我们先前的实现,只需在程序提供处进行处理就好了. 好了,废话不多说,直接上些干活来: 一.定义基本的实现类 public class FastReportHelper { public FastReport