写下这个标题的时候,也是表明必须需要改变的时候了……

黄山松 (Tom Huang) 发表于博客园http://www.cnblogs.com/tomview/

最早从windows3.1使用vb3编程,操作系统从win95,98,2000,xp,win7,win8, 甚至现在的win10,使用的编程工具从TC2.0,BC3.0,VC1.52,进化到 VC2.0, VC4.2, VC5.0, 最后到VC6.0,然后就一直维持这个开发工具一直到现在。

从大学期间开始编程,到研究生时做课题研究,到毕业后做智能系统核心算法开发,算起来已经超过20年,以VC作为主要开发工具也已经超过20年,主要的时间都是使用vc6。

能够一直用到现在,主要原因是自己是做算法开发的,做模式识别,神经网络,系统仿真辨识领域的课题和项目。所以VC6在大部分时候还是能胜任的。

此外,WINDOWS也一直保持操作系统的兼容性,VC6能一直开发最新系统的程序,AMD64位技术完美兼容32位,这些都功不可没。

期间试图进化到VisualStudio新版的开发工具,但实验过后发现操作习惯很不一样,所以最终放弃了。

(1)自己最常用的几个vc6的功能在新版的VS里面无法实现,由于这两个功能我每天会用上百次或更多,由于一时没找到解决办法,就没有动力继续研究改换工具了。

(a)在VC6里面给命令ToggleWorkspace指定 Alt + ~ 热键之后,可以非常方便地打开和关闭整个工作区,而新版Vs的命令里面工作区的打开和关闭是不同的命令,此外不同的面板(类视图,文件视图,资源视图等等)的命令也是分开的。所以在vc6里面可以方便的扩大代码区到基本整个屏幕,只需要一个热键(平常我把工具栏也都隐藏,只用热键和菜单)所以整个屏幕基本都是代码区。

(b)自己做了一个Add-in,在指定 Alt + 1热键之后,可以直接在代码区切换头文件和实现文件,.h, .c, .cpp可以自动切换显示。

(c)这个addin里面还有其他一些功能,例如自动添加函数的参数说明注释,自动插入自定义的代码碎片,打开工程目录等等。这些功能新的VS的插件可能都有,但自己原来的是不能用了,需要再研究。放弃已有的,熟悉的东西是很难的啊(很多大公司也是这样倒掉的)

(2)同win7的兼容性问题。在win7上安装vc6的时候说不兼容,但其实忽略之后工作完全正常(据说ole container不兼容),自己也试验过win8和win10,均可以正常工作。

(3)同Office2010不兼容的问题。其实只影响一个打开的工具栏按钮,自己基本从来不用这些按钮,所以也不影响我维持现状。

(4)vc6编译器老化的问题。曾经尝试过用intel的编译器,集成在vc6环境中使用,但没感觉到太大的差别。

(5)编译器不支持新的c++特性的问题。由于一些最新的特性不支持,所以编程时要避免使用最新的C++特性(我难道会用到这些新特性?我这个年纪的人,如果还在编程,很多都在吃老本,所以不需要这些新特性,我们会用自己的办法实现这些新特性的功能)。

(6)新的开源库需要新的C++特性的问题,譬如boost,新的opencv等。这个我都是在vs2015上把这些库增加普通的接口函数,编译为动态链接库来处理的。

(7)团队合作的问题。由于一直是单打独干,所以没有团队合作的问题。这个是自己的选择,也是自己的局限。

(8)版本管理的问题。由于没有团队,所以版本管理就简单了,自己开发了自用的版本管理工具,虽然功能差,但是完全是自己的习惯和思路。

这些年想尽办法延续了VC6的使用,其实也就限制了自己的发展,现在是改变的时候了,怎么改变?是进化到新的visual studio吗?学习新的日新月异的技术?不,是要进入休息(或退休)的状态,少编程,多思考。

有空的时候会写写自己20多年来的代码积累,新的技术日新月异,这些都会被遗弃,被遗弃之前可能会写一写。

自己的算法是不是也可以逐渐开源?

我是如何把VC6一直用到2016年的的更多相关文章

  1. WIN 下的超动态菜单(二)用法

    WIN 下的超动态菜单(一)简介 WIN 下的超动态菜单(二)用法 WIN 下的超动态菜单(三)代码 作者:黄山松,发表于博客园:http://www.cnblogs.com/tomview/     ...

  2. 词法分析程序 LEX和VC6整合使用的一个简单例子

    词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if ...

  3. elasticsearch,python包pyes进行的处理

    elasticsearch:高性能搜索引擎,官网:https://www.elastic.co/products/elasticsearch/ 对于它相信大家都不陌生,es的使用已经广泛存在 各大网站 ...

  4. Java JNI 编程进阶 实例+c++数据类型与jni数据类型转换

    原文:http://www.iteye.com/topic/295776 JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,J ...

  5. PHPNow升级PHP版本为5.3.5的方法

    在WIN上有时候需要测试一些PHP程序,又不会自行独立配置环境,那么PHPNow是非常好的选择,这篇文章主要为大家分享下如果将phpnow的php版本升级为5.3.5   在WIN上有时候需要测试一些 ...

  6. PHPNow升级PHP版本的方法

    在WIN上有时候需要测试一些PHP程序,又不会自行独立配置环境,那么PHPNow是非常好的选择. PHPNow自带的PHP版本为5.2.14,而最后一次更新在于2010-9-22,PHP5.2对于现在 ...

  7. CSS中的浮动清除

    先来看一个实验:现在有两个div,div身上没有任何属性.每个div中都有li,这些li都是浮动的. 理想的效果:可实际的效果: 这个地方就涉及到浮动,因为两个父元素div都没有高度(或者小于子元素的 ...

  8. PHPNow升级PHP版本

    PHPNow升级PHP版本 phpnow下载地址:http://www.jb51.net/softs/12868.html 1,先把PHP5.3.5下载下来,在官网我是没找到VC6的版本,只能从Goo ...

  9. PHPNow升级PHP版本为5.3.5的方法(转)

    PHPNow升级PHP版本为5.3.5的方法 原文:http://sharebar.org/1142.html 在WIN上有时候需要测试一些PHP程序,又不会自行独立配置环境,那么PHPNow是非常好 ...

随机推荐

  1. [java] 深入理解内部类: inner-classes

    [java] 深入理解内部类: inner-classes // */ // ]]>   [java] 深入理解内部类: inner-classes Table of Contents 1 简介 ...

  2. VMware Workstation 10.0 正式版官方简体中文下载(附序列号)

    虚拟机界数一数二的王者软件VMWare Workstation 今日推出了最新的VMware Workstation 10.0 版本.该版本最大的更新是加入了简体中文语言,这意味着未来神马汉化包.中文 ...

  3. [AngularJS] AngularJS系列(7) 进阶篇之promise

    目录 使用promise 补充说明 $q.all $q.when 在上节中,我们在http中使用了then 和 在ngResource中返回了一个'延迟对象'. 本节介绍一下angular中的prom ...

  4. sql server实现自定义分割月功能

    本文目录列表: 1.为何出现自定义分割月需求 2.sql server实现自定义分割月功能 3.测试验证效果 4.总结语 5.参考清单列表   1.为何出现自定义分割月的需求   今天梳理一个平台的所 ...

  5. AngularJS----基本操作

    之前的学习基本了解了AngularJS的常用方法,下来就继续学习吧. 创建自定义的指令 除了内置指令,我们可以创建自定义指令.通过.directive函数来添加. <div change-dat ...

  6. 怎么搭建EF的环境?(Entity Framework)

    1.EF是什么? EF是.net封装的一个用于数据库交互的实体层框架,它的全称是Entity Framework. 2.EF搭建: 新建之后,我们就可以看到里面的内容: 我们可以分别看一下它里面有些什 ...

  7. UDS(ISO14229-2006) 汉译(No.5 公共约定)

    ISO 14229遵循OSI Service Conventions(ISO 10731)(OSI服务公约)所述,并应用于诊断服务.这些约定指定相互作用与服务消费者和服务提供者.通过服务原语,信息数据 ...

  8. Server Tomcat v7.0 Server at localhost was unable to&amp;nbs 报错问题解决

    在eclipse启动tomcat时遇到超时45秒的问题: Server Tomcat v7.0 Server at localhost was unable to start within 45 se ...

  9. Java基础学习总结 -- 多线程的实现

    目录: 继承Thread类 start()方法实现多线程的原理 实现Runnable接口 Thread类 与 Runnable接口 的联系与区别 多线程的实现方法: 继承Thread类 实现Runna ...

  10. (原)3.2 Zookeeper应用 - 数据的发布与订阅

    本文为原创文章,转载请注明出处,谢谢 数据的发布与订阅 1.应用 服务端监听数据改变,客户端创建/更新节点数据,客户端提供数据,服务端处理 2.原理 客户端监控节点数据改变事件(例如配置信息,下图的c ...