如何学习VC++
原文:http://blog.csdn.net/liquanhai/article/details/5499768
预备知识:
1. VC是一门语言吗?
VC不是一种语言,而是一种集成开发环境(IDE)。利用VC,可以把源程序编写、编译链接、调试运行等各个工作放在一块完成,很方便。如果你学过 8086汇编语言,一定会对其令人吐血的运行和调试方式印象颇深:) .那么,我们在VC里用的是什么程序设计语言呢? 是 C++。
2.MFC是什么东东?VC和MFC有什么关系?
常听学VC的人说起MFC,有本口碑不错的书名字就叫《深入浅出MFC》,那么MFC是什么呢?我们知道,C++是一种面向对象编程(OOP)语言,使用 别人封装好的类(Class)可以极大的加快软件开发进度。而MFC,就是MicroSoft为我们提供的一个门类齐全、功能强大的类的集合,它的全称 是:MicroSoft Foundation Class。我们平常所说的"学习VC",有一小半内容是指学习MFC的功能和使用方法。那另一大半呢?- 我不能马上告诉你,马上告诉你你印象不深:)
3.什么是API函数?
举个例子吧,如果让你在电脑屏幕中间打印一行字:"只要想做一件事,就一定有办法"。你会如何去做呢?在显示器上显示任何东西,本质上都是对硬件的操作, 作为一个普通的coder,不可能也没有必要去深入到硬件层来实现这个功能。幸运的是,系统给我们提供了一系列函数,只要我们用C语言的方式调用这些函 数,剩下的和硬件打交道的事情就由系统帮我们完成了。这些函数,就是传说中的API函数,全称:Application Programm Interface(应用程序接口)。在我们上面的例子中,可以先用API函数GetDC()取得桌面的DC,然后用TextOut()函数输出文字。事 实上,要想扎实的学好VC程序设计,一定要理解和掌握这些API - 这就是另一大半内容。
一、思想准备
真是有趣,学个程序开发还要思想准备?
我无意夸大学习VC的难度,但是VC的入门比VB之类的难很多却是不争的事实。如果你曾经3个星期搞定VB(这里指入门),那么VC可能要花三个月的时 间,这种普遍存在的学习困难差异使得很多人产生严重的挫折感甚至最终放弃。当然,具体要花多长时间和你原有的基础以及个人努力程度有关,稍后我会谈到需要 哪些知识。而现在,我只希望朋友们能有这样一个认识:VC是比较难学的,我需要做好长期学习的思想准备。
二、学习流程
谁都希望通过最短最好走的路到达目的地,学VC的人也不例外吧?然而有一些路是注定不能绕过的,绕过它们,你的知识就会就会变成无根之草,你就会在接下来的学习中举步唯艰。下面顺次列出学习VC所需要掌握的知识:
1. C++程序设计基础
2. Windows程序设计
3. MFC的学习和使用
如果你看到这里觉得有畏难情绪,请把"一、思想准备"再读一遍。
让我来解释一下这三个知识点的关系。
学VC必须要有C++的基础。不会C++而能学会VC纯属扯淡。说到这里我想调侃一下自己,因为我在上大二的时候曾经一时冲动要学VC,去图书馆借了几本 书回来硬着头皮啃了半个多月,仍然一头雾水不知书中所云,遂放弃。现在回想起来,书写的比较烂固然是没有学成VC的一个原因,但关键是自己基础不够--除 了VB啥都不懂,连"::"是什么意思都不知道,呵呵见笑了。所以如果你现在还不懂得C++,请务必学C++先。
如果时间紧迫的话,也可以速成:至少应该搞明白面向对象编程的基本概念,比如类/对象/继承/重载 等等。
推荐书目:利普曼 加.劳乔 著 潘爱民译 《C++ Primer 》、钱能的《C++程序设计教程》也不错。
注意:有不少人畏惧这部分的学习而选择跳过去直接学习MFC,对此我的看法是:不可取。当你没有学会走 路时,不要跑,否则往往会摔的很惨。侯俊杰先生说的”勿在浮沙筑高台“也是这个道理。而事实上当你潜心把这部分学好后,你会发现MFC的入门根本就不需要 花什么时间。世上很多事情是需要水到渠成的,当你付出足够的努力往往就可以做成一件事(技术的事情尤其如此),不需要刻意去找什么捷径,古人说“大巧无巧 术, 用巧者乃所以为拙”,真正的捷径就是不找捷径。
推荐书目:Petzold 的《widnows程序设计》,有中文版的。为什么我只推荐这一本?因为它实在太经典了,一本足矣。
推荐书目:《VC++技术内幕》、《深入浅出MFC》
值得一提的是,关于MFC的学习,网上有一个非常好的视频教程,是 孙鑫 讲的。我看过,觉得他讲的确实很好,能把前10课看完就算入门了。该视频共20课,有2.2GB之大,大家有兴趣的话可以买盘或者用BT、电驴之类的下载,一个字:值。
到此为止,你已经掌握了使用API函数和MFC进行简单可视化程序的开发,稍加训练做个简单的数据库或者网络的程序应该不成问题了。×××长征已经顺利的迈出了第一步,恭喜你!
三、问答(FAQs)
问:我不会c语言,有关系吗?
答:没关系。你按照【学习流程】中说的123学就行。
问:我该装哪个版本的VC?
答:版本并不重要, 就像你吃饭时先吃哪道菜一样. IDE的使用,一通百通。如果你实在没有主意非要我推荐的话, 那就装VC++6.0吧,最好是英文版的.
问:C++ 和 windows程序设计的学习可以用VC进行编译调试吗?
答: 当然可以。具体方法网上找,相当简单。
问:VC的代码量太大,一个最简单的窗口都要百十行代码。不好办啊?
答:VC就这个样,习惯了就好了。简易和灵活是天生的矛盾,VC偏向于后者。
问:什么是MSDN?我要不要安装MSDN?
答:你可以把MSDN简单的理解为一种函数参考手册。对于VC程序员来说,没有MSDN是不可想象的。
问:API函数和宏定义太多太难记,我该怎么办?
答:高中化学的原子量多不多?难不难记?但我相信当年很多人都记得常用元素的原子量。为什么?练的多自然就记住了,别亦无它,唯手熟而。
问:我学VC好一阵子了,觉得VC太难了,我该怎么办?
答:谢谢, 这是我所遇到的最容易回答的问题:坚持,或者放弃。
问:如果用一句话来概括学好VC的关键方法,那是什么?
答:亲手写代码, 从最最简单的程序开始, 编程、编程、再编程。