游客发表
我1998年第一次装VC60时,从入装完发现连个桌面图标都没有。精通找半天在开始菜单里翻出个Visual C++ 6.0,从入点开,精通一片灰蓝色的从入界面,工具栏密密麻麻,精通跟今天的从入VS比起来像台老式收音机。但就是精通这玩意儿,统治了中国程序员将近十年。从入
VC60的精通入门,说穿了就是从入三件事:建工程,写代码,精通按F5。从入但恰恰是精通这三件事,坑了无数新人。从入建工程时,你选了Win32 Console Application,结果生成了一堆看不懂的文件,其实你只需要在那个写着"// TODO"的地方写你的代码。我当年卡在"怎么让窗口停下来"这个问题上整整两天——后来才知道,要在return 0前面加一句system("pause")。就这么简单,可没人告诉你。
它的调试器是个怪脾气。你设个断点,按F5,程序跑起来了,然后窗口一闪而过,你根本来不及看输出。这时候你得学会用Ctrl+F5,直接运行不调试,窗口就停住了。还有那个经典的"Debug Assertion Failed",弹出来时一脸懵,其实多半是你数组越界或者野指针。VC60的错误提示经常答非所问,它说"unexpected token",实际是你中文引号没关。它说"missing ';' before '}'",其实你前面少了个括号。你得像侦探一样,从错误行往上翻,翻到真正出事的那行。
但VC60有个好处,它的内存布局简单透明。没有后来那些花里胡哨的智能提示,没有自动补全,你打错一个字母它立刻给你脸色看。这逼着你把每个函数名、每个头文件记得清清楚楚。我认识一个老工程师,到现在写C++都不用自动补全,说VC60练出来的手速,敲代码比想代码还快。
MFC是VC60的重头戏,但也是劝退神器。你拖个按钮上去,双击,它自动给你生成个OnButton1函数,你往里面写MessageBox("hello"),编译,运行,点按钮,弹窗。那一刻成就感爆棚,觉得自己掌控了Windows。可一旦你想做点复杂的事,比如在窗口上画图,你得去理解CDC、CClientDC、OnDraw这些概念,它们像俄罗斯套娃一样一层套一层。我当年画个正弦曲线,翻了三本书才搞明白,原来得在OnDraw里写pDC->MoveTo和LineTo,然后调用Invalidate()让窗口刷新。
VC60的另一个玄学是"Release版本运行正常,Debug版本崩溃"。这多半是你在Debug下用了未初始化的变量,Release优化后碰巧给值了。反过来也一样,Release崩了Debug没事,那是时序问题。这种问题查起来最耗白头,因为VC60的调试器在Release模式下基本废了,你只能靠printf大法,一行行输出定位。
现在回头看,VC60的界面跟屎一样,智能提示约等于零,编译错误提示像天书,但它教会了我要敬畏底层。用它写程序,你得清楚每个字节怎么排布,每个指针指向哪里。后来用VS2019,智能提示帮你补全一切,但很多人反而写不出高效代码,因为太依赖工具了。
我至今还留着一台装了VC60的老笔记本,偶尔打开写个排序算法,感受一下当年那种纯粹的、不被打扰的编码状态。它启动慢,界面丑,但那种"我完全掌控我的代码"的感觉,后来的IDE都给不了。如果你真想学好C++,别怕麻烦,装上VC60,关掉所有辅助功能,硬写一个月。等你习惯了它的苛刻,再看其他工具,会觉得自己像个武林高手,飞花摘叶,皆可伤人。
友情链接