重拾VB6的笔记 今天药忘吃喽~ 2021-12-17 02:49 303阅读 0赞 # 写在前面 # 简要介绍几句VB6。 VB语言可以说对于微软来说,除汇编以外,是最古老的高级语言。 因为盖茨用是靠BASIC起家。 后来发展出了VB,即可视化B语言,一直到98年发布VB6。 微软不再支持VB的开发和维护了。 后来的.NET与VB没有什么关系。 当真是遗憾。 但可以说,.Net时代,在语言和笼络开发者方面,微软几乎没有建树,而且,在内部,Visual工具体系不断被边缘化,以至于二十多年过去了,微软还是没有干成什么完整的项目。 但VB6和VBA的存在,使得不论人们如何忽悠,就是今天的所谓的大数据,前端清洗数据,还是需要它们的存在。 98年,我从大学开发题库开始使用VB6操作数据库和用VBA,操作WORD; 2000年,用VBA实现EXCEL报表; 2003到04年,为前东家开发本地操作终端和解析excel的一系列,将人工编写的量化需求(excel)转为上位机数据库,agent端的代码、数据库,以及snmp mib等等,有兴趣的同仁可以根据我的名字,找一些相关专利。也许用得着。 07年,带队重新开发时,重新组织人力进行改进。 从那以后,大规模使用VB开发,对我来说,已经过去很多年。 尽管我对这种语言还是象当年那样钟爱,但今天再用时,发现的确有些手生了。 感叹英雄也有迟暮的时候啊。 感叹之余,还是将自己重新callback的过程,记录了一些,写出来,希望对大家有用。 # 安装VB的注意事项 # 最好一定要装98年的光盘版的自己留存的版本。不要找网上的阉割版。 VS98一共好象是8张盘,第一张是VB中文版,第5、6张是英文的VC和VB。一般装第5张盘就可以了。 第7、8张是MSDN,一定要装上。没有MSDN,还怎么编程呢? # 装好后的配置 # 工具-->Option ![optional][] 先将这两个分别修改如下: 第一个要去掉,因为它老是婆婆妈妈的弹出提示,很烦的。反正你写得不对,会变红。 第二个,一定要加上,虽然用VB给了我们很大自由,但以我的经验,每次我想偷懒,一定会在那个地方吃大亏。比如函数返回值没有检查,是最常见的。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70][] 字体修改 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 1][] 遇到错误就停。因为我们是程序员,遇到错误就停很重要。很多书上,叫你不要这样做,因为他会告诉你:VB习惯用错误处理来跑正常流程。 我告诉你,世界上没有任何一种语言是这么设计的,因为出错以后的效率,编译器开发者可是不保证的。所以,不要听那些专家,听我的就成了。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 2][] 工程的属性,也很重要。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 3][] VB这个框,就很象VC的属性设置了吧? 注意的是下面的条件编译,要注意,VB支持预编译,这点的确有时候是有用的。相关的内容,大家自己找吧。但VB的预编译只在在一个文件中,如果多个文件中用到,每个文件,你都要定义相关宏。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 4][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 5][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 6][] 这个很重要。 我喜欢VB和VBA的一个原因就是各种向导。 ![20190706224802110.jpg][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 7][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 8][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 9][] 具体大家自己看吧。 插件管理器,必会的技能。 ![20190706224918107.jpg][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 10][] F2,有时会救我们于水火。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 11][] 比如没有装MSDN,或者是第三方ActiveX,msdn里没有,一定要按F2。 今天程序编不过,考虑到我偶尔自称高手,老是按F2显得太low,结果最终还是按了,发现在写word程序时,用的excel的对象,。。。。难怪编不过。 引用,这没什么说的,必会啊。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 12][] 许多现代的程序员,不太了解 COM体系。 本质上来说,COM体系远远先进于java 还有后来抄袭java的.net的对象化的方式。 这个我不多说了。 但你知道,VB离不了COM。 Reference是加入普通的标准COM组件,一般是没有界面的。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 13][] 而Ctrl+T弹出的是有界面的控件ActiveX的框。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 14][] 如何编译exe出来呢? 这个对于C++的程序员,可能会摸不着头脑。什么,你说什么? 对了,VB是解释性的,一般平常不需要编成exe,只有发布时才需要,如下: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 15][] 如何判断是在IDE里的调试状态: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 16][] 说到重点,如何添加win32API呢? ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 17][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 18][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 19][] 其它的: 1. VB6是单线程的。 2. VB6,我个人喜欢的原因,一个是启动快,执行效率高。第2是脑力劳动强度低。调试也不错,调用栈什么都有。对于后来我学习C++的确是有帮助的。 3. 操作数据库方便,快速。比C++只快不慢。 4. 调用COM,ActiveX,还有制作COM和ActiveX,比C++方便太多。 5. 当然还有VBA了。这个没什么可说的。如果你知道,你会懂,你不知道就算了。简单来说,它是软件工业界,各厂家开发的程序之间,互相控制对方为已服务的通用语言。注意,不是厂家之间,是软件之间。当然,局限是在一台主机上。微软的DCOM没有成功。但这已足够了。有一些程序员,一直在嵌入侧,不太了解整个应用的世界,在那个世界里,无处不在的VBA,尽管你可能一生也不知道它在那。 6. VBA录制功能。这个是我们最喜欢的。 当然,VB6问题也不少。例如,微软把它抛弃了。呵,微软,自从鲍尔默上台,变成了一个只会开玩笑的闹闹公司。只认钱,脸早不要了。 再例如,是单线程的。一般来说问题不太大,但只要是多任务,就需要动用进程。很麻烦。 再如,真的会用VB6的人越来越少了。 再如,比如,用VBA操作WORD和Excel,AutoCAD,3dMax,前提是程序员会用Word,Excel,等等这些软件,这可不是个简单事。这些软件我都用过。也只能说还成吧。特别是进入录制状态,只能用键盘,还是相当有挑战性。 例如,一次我分给部下的制作word操作手册的任务,因为指令有3000多条,第当到500多条时,就崩溃。最后他也快要崩溃了。我尝试在500条,保存一次,就好了。 还有许多技巧,今天就说这么多吧。 本文内容,我提交到资源可以下载。 [https://download.csdn.net/download/haoyujie/11290891][https_download.csdn.net_download_haoyujie_11290891] 与本文的内容一样。 [optional]: /images/20211214/03c24d051d3c475f97e6da4eb67160a7.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70]: /images/20211214/26cbce4c939944f3b87fc656ab86e67b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 1]: /images/20211214/0afd768847834cdbaf8ef7ee10bba42b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 2]: /images/20211214/8cbba239d5ff4d04bda7f80465028961.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 3]: /images/20211214/b750fda35f7347488db876a4aafa8f3c.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 4]: /images/20211214/b4541ee490e94df29b3ac7cff51a3224.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 5]: /images/20211214/d6af4787a7f349ef98fec8269ded58cf.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 6]: /images/20211214/60f8d45bed6a402c9cd76206973d0260.png [20190706224802110.jpg]: /images/20211214/c4692cd931e54ec995c5c93904bacdfa.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 7]: /images/20211214/9b2d650498a24cd3987417c240d4d848.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 8]: /images/20211214/52b38661696b44459505d42183e2940b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 9]: /images/20211214/3923b6b7a4f347ae9c88ef0c3731a614.png [20190706224918107.jpg]: /images/20211214/849ef63f7aea4a73855debd1229666e1.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 10]: /images/20211214/eacdd13ad52c43b194c9b0e61a687c09.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 11]: /images/20211214/0f3b3a5937b94ed6b2d37e010db7cf6e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 12]: /images/20211214/552266f6530544a1957c1ea8b3f325f1.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 13]: /images/20211214/d59a3d04a9db4f95871dd3d1b07dea54.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 14]: /images/20211214/224c4aeb603b4959bd879f41d6f49033.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 15]: /images/20211214/02963b1d61654ce1ae55e8271a148bde.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 16]: /images/20211214/b1338c5faed84bb99eaf0405ae82ce53.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 17]: /images/20211214/b1542090918d4095a92dec9524e91049.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 18]: /images/20211214/72a2bc18d099402cb5b075675da8b767.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhb3l1amll_size_16_color_FFFFFF_t_70 19]: /images/20211214/ac82cc63cdeb42dc9e4cae5ab4a9a820.png [https_download.csdn.net_download_haoyujie_11290891]: https://download.csdn.net/download/haoyujie/11290891
还没有评论,来说两句吧...