您的位置:首页精文荟萃软件资讯 → 对初学者如何开始学习VC的看法

对初学者如何开始学习VC的看法

时间:2004/10/7 19:05:00来源:本站整理作者:蓝点我要评论(0)

 1.学习VC的一点体会 
   
  如果没学过编程,最好从C开始,然后学习VC++。当然一开始就学VC也行,不过VC太庞大了,难以把握。用VC时,别用它的类,就用标准C和Win32 API编写命令行的程序,这样VC只是一个方便的C编辑/编译/调试器,而不是功能极多、庞杂的重型软件,这就和使用Turbo C差不多,只是功能更强了,使用更方便了。同时这样编程还有一个好处,就是可以熟悉Windows系统的工作方式和组织方式。 

  在没有熟练C、C++及编程思想前,一定不要接触VC的图形界面编程和MFC类库,否则你就会对VC望而却步的。我在上学时学了一学期的VC,在那之前学了C、汇编和很多其他的编程课程。可是学完VC后,班上大多数人害怕VC,不敢用它,没人逼着说什么也不会去碰VC,就是因为一直在学界面编程和使用MFC类库,学得糊里糊涂,不熟悉类库的使用和MFC体系结构,对Windows各种消息不熟悉,编起程来举步维健,有时根本无从下手;而不用MFC类库又不会编程了,因为不会用Windows API,对Windows系统的工作原理不了解。 

由于Windows NT的界面十分友好,管理员很容易就熟悉了NT的使用和日常管理,但是却不了解Windows NT的工作原理,也不注重Windows NT配置工作,因而降低了Windows NT的安全性,可以说这是Windows NT相对于Unix来说安全性差的一个重要原因。管理员只需按微软提供的NT C2 Config CheckList的配置列表,实现其中重要的几个配置就可以挡住大部分的普通入侵者,然而Admin为空密码和允许空连接的 NT 计算机就是如此之多,尤其在中国。说远了,对于编程人员其实也是一样,Windows系统的界面友好,使得很多人只是简单的使用它,而不去深究它内在的实现。对系统理解越少,编程的困难越多,实现所需的功能越难,因为编程基本上是在和系统提供给程序员的编程接口(API)打交道,你不知道系统提供给你什么支持,就难以编程。举个例子,大家知道Unix的用户帐号存在/etc/passwd文件里,如果要查找当前系统的一个用户名就只需打开/etc/passwd文件,然后一行一行的读文件,并分析一行里的内容,从而找到用户名部分和要查找的用户名相比较即可,这没有问题,我想大多数不了解unix编程的程序员都会这样想。然而unix提供的getpwnam函数恰好实现了这个功能,一个函数调用就解决了问题。可以看出,理解系统提供的API的重要性;实际上,程序员在学会了编程语言和基本编程技巧后,最主要的任务就是了解系统提供的函数支持,对系统API了解越多,编起程来就越得心应手。 

学习Win32 API的理想方法就是使用一个适当的编译器,学习控制台编程(不是DOS编程,虽然它的界面是命令行界面)。我想VC是比较合适的,它功能强大、使用方便自不必说,而且可以很容易的支持SDK的程序,这也是大家选择VC的重要原因。对于Delphi和BCB我了解不多,印象里和VB有些像,不知编写控制台程序如何。Turbo C是不错的编译器,大多数人在Dos下用C编程都用它,不过可惜,它不支持Windows API。 

  对于网络编程,用Winsock和标准 C 基本可以了(要进行Windows NT/2000的Netbios编程使用Winsock是不行的),而且不难,但要是使用它的MFC类库,方便是方便了,可是复杂的关系太多了,容易乱。而且有些功能是MFC所没有提供的,MFC提供了最常用的类,而一些特殊的应用没有MFC类。 

  要是想用图形界面编程,使用MFC还是比较简单和理想的(和使用API相比),不过自然不然VB快。首先C++的基础要打好,然后可以找本好的VC书,编些例子,慢慢熟悉MFC,不过要掌握MFC类库谈何容易。 
   
  


2.其实人都容易犯贪多的毛病,这就是求知欲,非常好,但要把握度  

  
  很多人学习电脑觉得自己懂的太少,于是什么都想学,什么作图、作动画、HTML、脚本、CGI、C、Authorware,仅仅Windows下流行的编程平台就有微软的Visual Stutio外加一系列开发工具包(SDK、DDK、DXSDK等)和Delphi、BCB。此外还有N多Unix和N多Linux呢。实际上你能学多少呢?一个VC就可以有很多分支(当然不是绝对的不可跨越),能够学好一个就不错了。其实人都容易犯贪多的毛病,这就是求知欲,非常好,但要把握度,否则就什么都蜻蜓点水,却没有专长。 

  下面我说说学习编程的一点体会。首先在有了一定的编程基础后,看别人的程序,尤其是好程序(看多了,自然会看到好的),是非常有益的,其帮助也会很大。不过在这同时你一定要动手去编,不然只能算是你看明白了或者‘懂’了,而不能说你会了、‘掌握’了,这之间有很大的差别。就拿下面这个程序来说,看了两遍,明白怎么回事了,建socket--监听--客户连接--建管道--建cmd进程,然后不断将客户的输入传给cmd,将cmd的输出发给客户;但是你‘掌握’了吗?让你写一个同样的你写不写的出呢?如果能,那你掌握了,否则没有。 

记得我第一次在unix下编程,是研究DOS攻击,好像是smurf攻击,那之前我从未在unix下编过程,连unix也不熟悉,cc命令还是问别人的,tcp/ip协议也了解不深,只是学生时课本上的那点知识而已,网络编程从未用过,只知道使用socket,然后就看smurf的linux源码,然后转为sco unix代码执行,很快做完了,找个sniffer一看运行对了。但是,我会unix编程了吗?我会网络编程了吗?没有,我写不了,只能看、改。后来找本书看看,渐渐明白点了,可还编不了程序,每个函数用什么参数,类型是什么,全要对着别人的程序才行。后来编了个小程序,Socket编程的基本知识就差不多了,其实很小很小的一个程序,似乎胜过看好几个程序,应该说这是量变到质变吧。有时看来看去,流行的新书都看过了,也没什么新鲜的,好像自己都会了,翻回来让你写一个,似乎又无从写起,好像什么都不会似的,就是因为我们看到太多了,明白了不少,但却都没掌握,于是就没有什么进步,此时写几个程序,会有很大帮助的。唉,这可能是人的通病吧,总觉得自己很强,什么都可以,越多越好,其实呢?能够在一个领域做好就是专家了。我不知是否看到近来ipxodi一篇学习网络安全方法的文章,确实,人很容易犯这个毛病。 
  
  当然,我并不是否认看程序,其实‘看别人的’和‘自己写 ’几乎同等重要。有时我觉得总写一些程序,似乎没什么新东西(是不是有点像看多了时的感觉??怪了),原来很久没看新东西了,看一看,似乎会有点发现,新的或者原来问题的解决办法。其实学习就是这样:看看,记记,然后就掌握了。有时看别人一个程序,能解决自己长期的困惑。 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本