我是如何把VC6一直用到2016年的
写下这个标题的时候,也是表明必须需要改变的时候了……
黄山松 (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年的的更多相关文章
- WIN 下的超动态菜单(二)用法
WIN 下的超动态菜单(一)简介 WIN 下的超动态菜单(二)用法 WIN 下的超动态菜单(三)代码 作者:黄山松,发表于博客园:http://www.cnblogs.com/tomview/ ...
- 词法分析程序 LEX和VC6整合使用的一个简单例子
词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if ...
- elasticsearch,python包pyes进行的处理
elasticsearch:高性能搜索引擎,官网:https://www.elastic.co/products/elasticsearch/ 对于它相信大家都不陌生,es的使用已经广泛存在 各大网站 ...
- Java JNI 编程进阶 实例+c++数据类型与jni数据类型转换
原文:http://www.iteye.com/topic/295776 JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,J ...
- PHPNow升级PHP版本为5.3.5的方法
在WIN上有时候需要测试一些PHP程序,又不会自行独立配置环境,那么PHPNow是非常好的选择,这篇文章主要为大家分享下如果将phpnow的php版本升级为5.3.5 在WIN上有时候需要测试一些 ...
- PHPNow升级PHP版本的方法
在WIN上有时候需要测试一些PHP程序,又不会自行独立配置环境,那么PHPNow是非常好的选择. PHPNow自带的PHP版本为5.2.14,而最后一次更新在于2010-9-22,PHP5.2对于现在 ...
- CSS中的浮动清除
先来看一个实验:现在有两个div,div身上没有任何属性.每个div中都有li,这些li都是浮动的. 理想的效果:可实际的效果: 这个地方就涉及到浮动,因为两个父元素div都没有高度(或者小于子元素的 ...
- PHPNow升级PHP版本
PHPNow升级PHP版本 phpnow下载地址:http://www.jb51.net/softs/12868.html 1,先把PHP5.3.5下载下来,在官网我是没找到VC6的版本,只能从Goo ...
- PHPNow升级PHP版本为5.3.5的方法(转)
PHPNow升级PHP版本为5.3.5的方法 原文:http://sharebar.org/1142.html 在WIN上有时候需要测试一些PHP程序,又不会自行独立配置环境,那么PHPNow是非常好 ...
随机推荐
- Centos 7 开启端口
CentOS 7 默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的 CentOS 7 采用了 firewalld 防火墙 如要查询是否开启80端口则: 1 ...
- Sql Server函数全解(一)字符串函数
字符串函数用于对字符和二进制字符进行各种操作 1.ASCII()函数 ASCII(character_expression)函数用于返回字符串表达式中最左侧的ASCII代码值.参数character ...
- Ionic2学习笔记(10):扫描二维码
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5575843.html 时间:6/11/2016 说明: 在本文发表的时候(2016-06-1 ...
- nodejs 遍历数组的两种方法
var array = [1,2,3]; array.forEach(function(v,i,a){ console.log(v); console.log(i); console.log(a); ...
- super.getClass()方法调用
下面程序的输出结果是多少?import java.util.Date;public class Test extends Date{public static void main(String[] a ...
- 4、python列表
1.末尾追加:append() s = ["a", "b", "c"] print(s) #['a', 'b', 'c'] s.append ...
- PowerDesigner15在win7-64位系统下对MySQL 进行反向工程以及建立物理模型产生SQL语句步骤图文傻瓜式详解
1.安装PowerDesigner15.MySQL5.不详细讲解了.网上一大把.请各位亲参考去. 2.安MyODBC-standard-3.51.0.7-win.msi.mysql-connector ...
- [ASP.NET MVC] ASP.NET Identity登入技术剖析
[ASP.NET MVC] ASP.NET Identity登入技术剖析 前言 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证.授权等等机制.本篇文章介绍ASP. ...
- Ionic + Cordova 跨平台移动开发环境配置
1.下载安装JDK(根据各自系统选择32位或64位下载),安装完成之后需要做以下环境变量配置 在“系统变量”中,设置3象属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),如果已经 ...
- iOS 文件下载
iOS 视频音乐类等应用会用到“文件下载”.文件下载在iOS中的实现如下: 1.小文件下载 @interface ViewController () <NSURLConnectionDataDe ...