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

黄山松 (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. MVC前台Post/Get异步获得数据时参数的取值问题

    Post方法,返回text,后台获得Data View $.ajax({ type: "POST", dataType: "text",//返回类型为文本 ur ...

  2. Ftp上传下载 C#

    public class MyFtpClass { private readonly string _destIp; private readonly string _userName; privat ...

  3. 机器学习 1 linear regression 作业(二)

    这个线性回归的作业需要上传到https://inclass.kaggle.com/c/ml2016-pm2-5-prediction 上面,这是一个kaggle比赛的网站.第一次接触听说这个东西,恰好 ...

  4. linux源码分析(四)-start_kernel-cgroup

    前置:这里使用的linux版本是4.8,x86体系. cgroup_init_early(); 聊这个函数就需要先了解cgroup. cgroup概念 这个函数就是初始化cgroup所需要的参数的.c ...

  5. Oracle Client安装与基本配置

    1. 安装Oracle Client, 访问Oracle站点下载Oracle Database 11g Release 2 Client 或者(直接下载Oracle 11gR2 Client) 2. ...

  6. 使用abp模板创建解决方案

    前言 ABP官网(http://www.aspnetboilerplate.com/),本地环境 sql server EXPRESS +vs2013 通过官网生成 module zero 解决方案模 ...

  7. Mac上编译C++报错

    今天在使用Mac编译C++文件时,提示以下错误. Undefined symbols for architecture x86_64: "std::__1::__vector_base_co ...

  8. 利用CSS3中transparent实现三角形及三角形组合图

    ??如何绘制三角形及三角形的组合图案,以下是自己画的草图 源码如下 <!DOCTYPE html> <html lang="en"> <head> ...

  9. Three.js外部模型加载

    1.  首先我们要在官网: https://threejs.org/ 下载我们three.js压缩包,并将其中的build文件夹下的three.js通过script标签对的src属性导入到我们的页面中 ...

  10. angular源码分析:angular中脏活累活承担者之$parse

    我们在上一期中讲 $rootscope时,看到$rootscope是依赖$prase,其实不止是$rootscope,翻看angular的源码随便翻翻就可以发现很多地方是依赖于$parse的.而$pa ...