visualc网络编程教程
相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:
一是学习顺序
先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-3个月,其他部分需要学习和工作中慢慢理解和消化了。
二是学习方法
人的知识80%是通过眼睛获取的,但是学习编程有所不同,除了看书、看视频之外,关键是要勤动手,勤动脑。通过做大量的练习、项目实战不断积累代码量。只有代码量足够多了,项目做的多了,才能算是真正学会了。项目能否完成,就是衡量是否学会的唯一标准。后期就是代码的质量和优化问题了,这个只能在项目工作中慢慢积累经验了。
最后强调一点,很多人学不会编程是因为掉坑里了。就是教程或者书上的知识点之间跨越太大,作为一个初学者很难自己摸索出来,前面的知识点没有掌握,接着学习后面的知识,肯定是学不会了。目前绝大多数编程书籍和教程或多或少都有这样的弊端。自学能力比较强的人可以通过各种方法,参考各种网上的资料自己解决。但是大多数自学能力不是很强的人,只能依赖老师、同学、同事或者朋友帮忙指导,或者报名培训机构,老师指导完成了。学习编程通常需要一些好的学习资料,包括纸质的书籍,视频教程,课件,项目练习,代码。零基础入门的书籍推荐《明解C语言》、《C Primer Plus》,还有一本非常特别的汇编和C语言正向逆向结合的书编程达人内部教材《汇编、C语言基础教程》也非常不错,讲解汇编和C语言的本质非常透彻,非常细致。视频资料也是特别多了,各种视频网站、论坛、自媒体都有,比如网易课堂、腾讯课堂、慕客网这些。还有一些论坛,比如CSDN、编程中国等。最重要的一点就是答疑服务,推荐爱达人的网站也很不错,从零基础入门到应用课程,配套的视频、课件、代码、项目、答疑服务都有,还可以兼职接单,学以致用。
⑵ 谁有C#入门经典pdf电子书,链接发一份,谢谢
Csharp宝典_电子工业出版社.pdf
http://www.400gb.com/file/10173874
Visual C#网络编程技术与实践.pdf
http://www.400gb.com/file/101738834
[Csharp高级编程(第6版)].(美)内格尔.扫描版.pdf
http://www.400gb.com/file/101737130
⑶ 计算机编程如何学习(软件、网络)
给软件开发初学者
在论坛上呆久了,发现很大一部分有关开发的帖子都是有关心怀梦想,立志成为一个软件英雄或者响当当的黑客人物;或者是狂热的游戏玩家,突然想迈入游戏开发的殿堂,自己打造一个完美的游戏;或者被以前IT行业的“钱”途无量所吸引,为了经济因素希望成为一个程序员的,而寻求进入软件开发领域之门的求助帖子。
这些诸如“你好,我想做程序员,应该怎么做?”,“初学C++,请问看什么书好”,“请高手帮我看看这个程序”,“我想转行,请高手指点”……的帖子占了各大软件开发论坛帖子总量的很大一部分,而且内容是长年不变,重复来重复去 :P
自从做了epubcn的C++板块的版主,经常收到不相识网友的消息或Email,基本上还是问这些问题。看到这些帖子和Email,不禁想起自己刚刚迈入软件开发的领域,茫茫然不知何去何从,兴奋而又彷徨不安的过去,这样的经历一次又一次,在不同的地点、不同的时间仍然在不断的重复。今天终于坐下来,写下一点文字,希望能够对彷徨的朋友们有点帮助。
确认你真的要迈入软件开发领域
软件开发是一项纯智力活动(现在人们都意识到长时间超负荷的连续写程序并不会提高软件生产率,反而会对软件品质造成很大负面影响,所以尽管很多程序员仍然长时间加班,但这种现象正在逐步减少并最终会消失,所以体力要求并不会比其他行业高),如果你不是一个智力高于平均水平的人,说实话,软件开发并不适合你,你基本不可能在软件开发领域取得很高的成就和地位,而且不久就会因为年龄的增长而被淘汰。
如果你以那些开发出共享软件的软件英雄和着名黑客为榜样,立志也要成为他们的一员,像武侠小说中的大侠一样仗剑江湖。我要先给你泼上大大一盆冷水,把你从幻想拉到现实中来。首先,现在的软件其复杂度和规模都远远超过以前,想一个人独力完成一个规模稍大的软件,基本没有可能(虽然还是有些特例, but trust me,那些仅仅是特例,请不要把自己想象成独一无二的超人、幸运儿);其次,无论是软件英雄还是仗剑江湖的顶尖黑客,他们的软件开发功底和智力都远远超过软件行业从业者的平均水平,没有多年的积累和坚韧超常人的毅力,是不可能,换句话说,想成为他们的一员,可以,但请首先成为一个合格的软件开发人员。
如果你是因为传说中程序员的所谓“高薪”,对自己现在从事的工作不满意,而萌生转行的念头,我劝你还是再慎重考虑一下。程序员的待遇一般来说,是要比平均水平高一些,但远远谈不上高薪,而且以现在程序员的工作量来算,其实同样的付出,程序员所得到的能和平均水平看齐就不错了,程序员的竞争和淘汰也是异常残酷的。技术的更新速度更是其他行业所罕见,每个程序员都要不停的跑步跟上,不使自己落伍,所以在这个层面上来说,没有谁可以停下来休息,唯一能够积累下来的就是你的经验,但经验中能够为你的竞争力增添筹码的并不多。
说了这么多,并不是我故意贬低,而是希望告诉你我所知道的软件开发行业的真实情况,基于此请再慎重考虑你是不是真的要迈入软件开发领域。
检验一下你是否适合当个程序员
在我看来,要做一个合格的程序员,你需要具备下面几个条件:
1. 强烈的好奇心和求知欲
2. 追求完美的精神
3. 良好的逻辑分析能力
其他方面的条件几乎所有类似的帖子都有提及:如果你不是准备单打独斗,那么团队合作能力必不可少;英语我就懒得说了,没有基本的阅读英文资料的能力,我劝你还是打消做个程序员的想法,没有为什么;数学能力也是必不可少的,如果不是做算法,高中水平的数学能力就足够了,但一定要成绩很好才行。
那么为什么我要强调上面列的三点呢?
具有强烈的好奇心和求知欲,能够让你跟上技术发展的步伐,仅仅靠危机感和责任感,你对技术的学习会有很强的功利性质,导致你的技术体系不能构成一个完整自包容的整体,而且很难对技术有高层次的认识和掌握。
我认识的一个资深系统设计师跟我说过:做软件,“做出来”和“做的好”完全是两个概念,所要求的投入和技术水平是天壤之别。现在国内很多程序员仅仅把软件开发当作养家糊口的谋生手段,国内计划经济时代凑合、马马虎虎干活的思想也渗透到了软件业,很多程序员仅仅是把功能做出来,根本不会去考虑提高重用性、可维护性,也不会去考虑提高稳定性、运行速度,甚至连代码也是乱七八糟,基本的编码规范都不遵守(在我看来,这样的人不配“程序员”这个称号),在我们大声谴责国内软件业环境不好,拉项目靠关系,没有质量保证体系,老板不重视程序员,疯狂剥削程序员的时候,我们是不是该问问自己,你是不是只把眼睛盯着别人?
现在各种软件开发包应有尽有,包罗万象,编程工具也异常强大方便,对于国内占主流的MIS系统来说,要完成一个功能实在不是很难的事情,但是如果把系统做为一个整体,则大多数都是运行缓慢、占用资源过大、兼容性差、可维护性差、不稳定的系统,你可曾尝试过开发一个优秀的系统,如果有,你就会发现开发优秀软件是多么困难,对技术的要求是多么高,而你在努力做到完美的过程中水平的提升是多么快。没有追求完美的精神,无论外部环境如何好,你也是不会开发出优秀软件的,等待你的是无休止的修改和维护~,你的技术水平也永远停留在简单的编码阶段,最终只有被迫转行。
好了,我真的适合当个程序员,那我该如何开始?
首先选择一门编程语言和操作系统平台。
操作系统平台国内比较流行的基本有Windows、Linux(Unix)、Mac OS。一般来说大家都选择的是Windows平台,因为此平台是国内处于垄断地位的操作系统,而且有很多优秀的开发工具可供选择,缺点就是Windows 平台的开放性不高,往底层探究比较困难(但我对于言必称底层的观点比较反感,不是所有搞开发的都要对底层非常了解,做出用户满意的系统才是我们追求的根本,玩些底层的trick只是一种自我满足罢了。当然我们需要有一些掌握底层技术的高手,但这个是个人选择的问题),而且用惯Windows的程序员在配置、脚本等方面比较弱。Linux是开源平台,当然从理论上你可以操纵Linux的一切,但是有几个人能够达到这一水平?刚刚开始学习开发的程序员,在 Linux上也仅仅能够开发一些应用软件罢了。Linux下的开发工具不够人性化,但这种情况正在逐步得到缓解,Eclipse就是非常出色的开发平台。在Linux下开发,你可以得到大量优秀的源代码,并且一切都是透明的(只要你想),但你必须学习很多命令行指令,掌握各种系统和参数配置以及脚本方面的知识。
编程语言的选择更是令人头痛,我涉猎不多,对于有些语言,我无法给出任何建议,只好等这方面的高手来给大家补充了。我仅仅对C++和Java进行一些说明,当然这个也仅仅是基于个人体会,绝对不是权威观点 :P
C++仍然是目前占主流的开发语言(详细的可以阅读TCPL中的相关论述),而且一种语言的发展或消亡都是一个渐进的过程,在可以预见的将来,C ++仍然是一门举足轻重的开发语言,但其所针对的领域和方向可能会有所调整,我认为最主要的变化是C++会逐步从商业MIS系统市场上退出。选择C++的理由是关于C++的优秀开发书籍和开发工具最多,相关的资源也异常丰富,待对于一般应用程序的开发掌握之后,无需过渡,就可以深入学习各种技术,因为现阶段讲述系统底层奥秘和高级技术的书籍,基本都是选用C\C++做为示例语言。加上微软精心打造的开发平台Visual Studio或Borland的C++ Builder系列,学习起来更是如虎添翼。但C++现在的缺点也是比较明显的,我最深的感触就是对于XP和Agile Development的支持不好。
Java简化了C++的语法,学习起来比较容易(但随着Java的日益普及和发展,是否能够继续保持这一优势,我不敢断言),Eclipse 是非常优秀的Java开发平台,支持XP的整个过程:设计、测试、编码、重构……现阶段敏捷软件开发的主要语言就是Java。而且Java的跨平台特性更是非常大的优势。
实际上,选择哪门语言都没有关系,根据你的发展规划和目前身边的环境选择就可以,没有必要跟风,其后的坚持才是难点。
好,假设你选择了C++做为开发语言,在Windows平台上开发,那么我给你如下的学习建议(其他的选择请各位积极补充……):
C++语言的学习当然是基础,这个阶段由于没有任何在特定平台上的开发经验,我们只能按照书中的例子一个一个输入运行,暂时告别熟悉的图形界面,回到古老的DOS了。参考书的选择是这个阶段很多朋友关心的,Stan Lippman的《Essential C++》和《C++ Primer》是我优先推荐的,而《Essential C++》因为篇幅较小,讲解内容适当,而且对C++ STL的运用有不少描述,显得相当实用,我认为最适合初学者使用。无论选择了那本书做为入门教材,都应该逐个例子逐个例子的消化,不要贪快,但同时要对重点内容有所侧重。我们学习任何东西都是为了解决实际问题,所以请把重点放在我们实际中最常用的部分,而不要过多的追究一些细节和艰深晦涩的不常用技术。
此刻我们会碰到很多过后看来非常简单幼稚的问题,比如为什么编译出错,为什么按照书中的例子输进去却无法通过编译,找不到头文件等等,大体上这是因为刚刚接触程序开发,对程序理解还很初级,以及对于所使用的开发环境不够了解,特定编译器对标准C++的支持程度不一导致。请多阅读关于所使用开发环境的各种文档,以及查阅帮助文档。以我最经常使用的Visual C++配合MSDN来说,当出现一个我不能理解的编译错误时,按F4键编辑器就会自动跳到当前错误地点,下面的输出窗口也会给出错误代码(比如C××× ×),把错误代码记下,打开MSDN,在索引一栏输入错误代码,就能够查到详细的关于此错误的说明,当然,是英文的(不要问你不会英文怎么办,这是基本要求)。现在的开发工具查错排错非常方便。当然,有时很多错误原因并不是编译器所提示的地方,而是往前或往后一些地方,长期的编程经验可以提高查错速度。此时也请多练习练习Debug技术。
此阶段只要能够掌握C++的基本语言要素,对结构化程序设计和基于对象的设计有一定理解,能够完成一些简单的小程序就可以结束了,毕竟DOS 程序现在很难勾起我们学习的欲望了 :P 在此之后可以视自己的情况决定是否学习数据结构,数据结构是程序员的必修课,不可或缺,地位非常重要,即使你现在希望马上进入图形界面程序开发的世界,这一课我也提醒你记着早点补上。
终于可以迈入图形世界,我们要从SDK编程开始,不要担心,这不会花费你太长时间,但却是对Windows程序运行机制进行深入了解的好时机,在此的努力都不会白费(trust me),此时的参考书没有什么好考虑的,基础的有Charles Petzold的《Windows程序设计》,进阶的有《Windows核心编程》。请从《Windows程序设计》开始,Charles Petzold的书通俗易懂,学习起来非常轻松,而且对你的语言要求不高,只要懂C就可以了。
此时容易碰到的问题大多与项目设置有关,如果使用Visual C++,请按Alt+F7调出项目设置对话框仔细检查,并阅读相关文档,熟悉各项配置的意义。
此阶段请重点掌握Windows SDK程序的编写方法,Windows程序的运行机制和Windows消息机制,和常用的Windows API。我们还可以更进一步:尝试用前一阶段学到的C++知识对过程化的SDK程序进行初步的改造,将我们敲入计算机的程序变得可重用,按照自己对基于对象思想和面向对象思想的理解来重新编写例子程序。
OK,现在你已经初步入门了,掌握了C++的基本用法,对面向对象有了一点模糊而自以为是的认识,也能够写出Windows程序了,虽然还有点简单,还有点丑陋,不过,总归是图形界面啊。开始有点感觉了,是吗? :P 别急着往前冲,停一停,将C++和Windows SDK的基础打牢,贪多嚼不烂吗。此时有很多经典书籍等待你去掌握,也有几乎无限的题材供你练习,请尽量多阅读接触下面的资源:
《C++ Primer》
《Windows核心编程》
《应用程序调试技术》
面向对象开发设计方面的书籍
MSDN的Platform SDK部分,Periodicals部分(包含了大量有价值C++、SDK方面的技术文章)
CodeProject里相关的源代码是很好的补充学习资料
现在继续往前走吧,利用SDK开发毕竟有时太过于费时费力,还是使用更高级的应用程序开发框架的好,主要的有MFC和VCL,关于这些框架谁好谁坏的争论我已经听烦了,一句话,能帮助我们完成任务就行,它们无非都是工具,你自己随便选择吧。不过选择好之后,你应该明白,对于你的工具,了解越深,越能发挥它的威力。如果你选择了MFC,我建议学习下面的书籍:
《深入浅出MFC》:关于此书毋庸多说,尽管有人不停的贬低,但它的地位是无可置疑的,而且也是对我最有帮助的书籍之一。
《MFC程序设计》
《Visual C++技术内幕》
然后就停止找书吧,网上开发站点的数不胜数的源代码就是最好的老师了……
学习过程中碰到问题我该怎么办?
我始终认为学习软件开发过程中遇到的问题只有自己尽最大的努力去解决,才能收到最大的成效,对于那些动不动就把问题发到网上指望高手帮你解决的做法我非常不赞同,因为这样你并不能从中学到多少。我建议的做法是,首先尝试自己独力解决问题,花几个小时解决一个问题,是很正常的,不要几分钟解决不了就放弃了;实在无法解决的时候,请尝试尽量减小涉及范围,将问题归结一下,初步形成自己的结论;然后利用搜索引擎或者开发论坛中的搜索功能来搜索是否有对于自己问题的解答;实在没有的时候,再发帖子求助。请了解一点:你遇到的问题都是别人遇到过的,网上肯定有现成的解决方法(因为你还没有到开发研究前所未有的问题的水平:P),只看你找不找得到了,请尽力去利用现有的资源而不是麻烦别人。
CSDN的论坛、MSDN在线文档都是非常好的资源,基本上我们遇到的问题在这里都能找到解答。
(写的有点乱,大家凑合看吧B))
注:上面的内容还不够全面,非常欢迎各位充实。有什么不对之处,也欢迎大家指出讨论。
⑷ 如何学好Visual Basic,怎样才能入门
如何学好VB
序:不要老是想着谁“最有钱途”,这些都不是我们应当考虑的,我们要考虑的是怎样才能真正的精通VB。如果成为了VB的专家,应当很容易赚到钱的。VB程序员为什么工资低,不是VB不行,是因为大部份VB程序员不行,他们只懂得用控件,而没有什么编程的思想。而VB的初学都只会用控件和简单的API就说精通VB了,显然影响的整个VB在程序界的地位,这些人显然不能称为程序员的,只能相当于会使用VB了,就像会Word一样。如果VB程序员都懂的数据结构,UML等,就完全是另外一回事了。有认为VB功能弱,请注意:仙剑95版就是用VB4做的,还有DirectX SDK7中有个一很好玩的3D游戏,声音和动画都非常好,也是用VB写的。所以VB能做很多东西,只要你想去做。
(1)VB不只是数据库和报表。不要以为VB就是数据库和报表,这只是VB强大功能的一小部份。如果这此都搞不清,还是好好的看一下相关的书籍,比在这里问问题有用多了。我以前没有学过数据库,只是有些编程的思路,后来学数据库就非常容易了。我做报表一般用RichTextBox或是From来做,一般都能做的很好,也不用去考虑什么水晶报表了。
(2)不要迷信于API。API能做很多东西,但有些东西在VB里面的函数中就有,API只是VB对WindowsSDK的封装而已。如果想学好API,建议学习SDK。如果VB本身就能很好的支持这个功能,何必还要用API呢。
(3)不要什么都想着控件。如果做程序都想着第三方控件的话,代价是很高的,不仅程序大,安全性也低了很多。其实VB本身带的控件已经完全够用了。
(4)认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句,很有用的。
(5)遇到问题不要直接来这里问,自己好好想一想,试着解决这个问题,这虽然在时间上慢了,可是在自身的提高上却有很大的帮助。
(6)没事的时候,多研究些语言上的东西,如数据结构和算法,不要老是想着什么花哨的东西。这对以后的提高非常有帮助。
如何学好VB程序设计
1,学习程序设计的基本要求
2,Vb的功能及特点
3,学习VB程序设计的方法
对学习者知识的要求:
首先,学习程序设计要具备一定的数学基础.计算机与数学有很大的联系,综观计算机历史,计算机的数学模型(图灵机,由Alan Turing提出)和体系结构(由John Von Neuman提出)等都是由数学家提出的,最早的计算机也是为数值计算而设计的.因此,要学习好计算机就要有一定的数学基础.不过对于初学者来说,在数学基础方面的要求并不是很高,从我个人的角度来看,有高中数学水平就差不多了.
如何学好VB程序设计
学习程序设计基本要求
对学习者知识的要求:
其次,学习程序设计要有一定的逻辑思维能力.逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼.初学程序设计应具备的逻辑基础可以从高中数学中学到.
如何学好VB程序设计
学习程序设计基本要求
熟悉Visual Basic操作环境与设计工具,能设计应用程序界面.
掌握,理解面向对象程序设计基本概念
掌握VB语言的基础知识,程序设计的方法,
能阅读一般难的程序;
能应用编写一些简单程序;
具有用Visual Basic开发Windows环境下应用程序的能力和阅读分析一般难度的VB程序的能力.
如何学好VB程序设计
VB程序设计的基本要求
Visual Basic 简介
Visual Basic 是Microsoft 公司开发的Windows 应用程序开发工具,Visual ——"可视化的",是一种开发图形户界面(GUI)的方法.使得非计算机专业的人也可以开发出专业的Windows软件.
Visual Basic继承了BASIC语言简单易学的优点,又增加了许多新的功能,它采用面向对象与事件驱动的程序设计思想,使编程变得更加方便,快捷.使用Visual Basic既可以开发个人或小组使用的小型工具,又可以开发多媒体软件,数据库应用程序,网络应用程序等大型软件.是国内外最流行的程序设计语言之一.
2,VB的功能及特点
英文Visual的意思是"视觉的","可视的Baisc"这个名字可能抽象了点,但实际上它却是最直观的编程方法,之所以叫做"可视",你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤.
在VB中引入了控件的概念,在Windows中控件的身影无处不在,如按钮,文本框等,VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法,能够响应用户操作(事件).
这样你就可以象在画板上一样,随意点几下鼠标,一个按钮就完成了,这些在以前的编程语言下是要经过相当复杂的工作的.
何为可视
Visual Basic的特点
1. 具有面向对象的可视化设计工具
2. 事件驱动的编程机制
3. 结构化的程序设计语言
4. 提供了易学易用的应用程序集成开发环境
5.支持多种数据库系统的访问
6.高度可移植化的代码
7.VB6.0在开发环境上,网络功能等的大大增强
Visual Basic的特点
可视化设计: Visual Basic为用户提供大量的界面元素(在Visual Basic中称为控件对象),例如 "窗体","菜单","命令按钮","工具按钮","检查框"等等,用户只需要利用鼠标,键盘把这些控件对象拖动到适当的位置,设置它们的大小,形状,属性等,就可以设计出所需的应用程序界面.
Visual Basic的特点
事件驱动编程:Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用Visual Basic设计应用程序时,必须首先确定应用程序如何同用户进行交互.(例如发生鼠标单击,键盘输入等事件时,用户必须编写代码控制这些事件的响应方法)这就是所谓的事件驱动编程.
程序设计方法概述
1.初期的程序设计
高运行效率,少占用内存为目标
2.结构化程序设计
程序的可读性,可维护性为目标
程序=算法+数据结构+计算机语言+面向过程的程序设计方法
3.面向对象的程序设计(OOP)
降低程序的复杂性,提高软件的开法效率和改善工作界面为目标
程序=对象+消息+面向对象的程序设计
面向对象的程序设计具有如下的优点:
1.符合人们习惯的思维方法,便于分解大型的复杂多变的问题.由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,软件开发者可以很方便地与问题提出者进行沟通和交流.
2.易于软件的维护和功能的增减.对象的封装性及对象之间的松散组合,都给软件的修改和维护带来了方便.
3.可重用性好.重复使用一个类(类是对象的定义,对象是类的实例化),可以比较方便地构造出软件系统,加上继承的方式,极大地提高了软件开发的效率.
4.与可视化技术相结合,改善了工作界面.随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人心.它与可视化技术相结合,使人机界面进入GUI时代.
(1)养成良好的学习习惯
VB程序设计的入门学习并不难,但却是一个十分重要的过程,因为程序设计思想就在这时形成的,良好的程序设计习惯也在这个阶段养成.
(2)学习程序设计要注重理解一些重要的概念.
VB程序设计本身并不复杂,翻开一本程序设计学习的书籍,看到的无非就是变量,函数,条件语句,循环语句等概念.但要真正能进行程序设计,需要深入理解这些概念.因此,在程序入门阶段还是应该重视概念的学习.
3,学习VB程序设计的方法
(3)自己动手编写程序
程序设计入门阶段要经常自己动手编写程序,亲自动手进行程序设计是创造性思维应用的体现,是培养逻辑思维的好方法.因此一定要多动手编写程序,而且要从小程序开发开始,逐渐提高开发程序的规模.
(4)阅读,借签别人设计的好程序
多看别人设计好的程序代码,包括教材上的例题程序.在读懂别人程序后,要想他为什么这么设计 能不能将程序修改完成更多的功能 则可以学到别人优秀的东西,帮助自己提高自身水平.
3,学习VB程序设计的方法
(5) VB程序设计学习的重点
重点放在思路,算法,编程构思和程序实现上.
语句只是表达工具,要求堂上积极思考,尽量当堂学懂,并做到灵活应用.
学会利用计算机编程手段分析问题和解决问题.
(6)养成良好的编程习惯
强调可读性;变量要加注释;
程序构思要有说明;
学会如何调试程序;
对运行结果要做正确与否的分析.
3,学习VB程序设计的方法
学好VB程序设计的具体要求:
(1)课前预习,认真听课并作适当做笔记,课后要认真复习消化所学内容,完成作业.
(2)多写程序,注重实践
程序设计课是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的.
只有自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,学起来才比较从容.只有当你在编写大量程序之后,才能获得真知灼见,感到运用自如.
动手能力的培养是这门课和以往课程最大的不同之处.
3,学习VB程序设计的方法
(3)上机调试程序应注意的几点:
上机前应认真把实验题在用纸上做一做(包括窗体界面设计,事件代码的编写等)
每次上机后应总结,把没有搞清楚的问题记录下来,请教老师或同学.
平时应多抽课余时间多上机调试程序.注意系统的提示信息,遇到问题多问几开为什么.
3,学习VB程序设计的方法
(4)保持良好的学习心态
要有自信,自强,积极主动学习.
克服畏难情绪,树立学好程序设计的信心.
VB重点和难点(文档下载):
http://www.learn-qdtvu.com/media_file/2004_12_03/20041203105249.doc
⑸ 谁能介绍下学习计算机网络编程应该学习什么
简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
从二十世纪60年代以后,计算机得到了突飞猛进的发展。似乎历史上没有任何一门科学的发展速度超过了计算机的发展,无论硬件、软件、还是网络都以惊人的速度向前发展。软件的发展速度和硬件一样,二十世纪九十年代中国的软件业还不是很成熟,而现在大大小小 的软件企业四处耸立,共享软件网上随处可见。不断发展的技术需要不断变化的程序员,例如,如今Visual Basic可以快速构建Windows下的应用程序,程序设计方面的技术不断发展着,不断引进新的概念、新的方法,如从结构化的C开始,当面向对象的思想被提出后,出现了C++,微软在C++的基础上为使用户构建win32应用程序更加方便,推出了Visual C++。这也就需要程序员也要不断的更新自己的技术。
目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择Visual Basic,学习编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。
一上来学C,学汇编??我劝没亲身体验过的不要乱说,误导别人!!
对于初学者是很不明智的选择,因为对于初学者来说它太枯燥乏味,费几天的功夫也弄不出个像样的东西!!
如果你只是处于个人的爱好的话,那么强烈建议你学习VB
被人成为编程者的玩具,简单容易上手,能够快速做出你想要的东西入:记事本,工资管理系统,档案系统,俄罗斯方块,推箱子,远程监控(功能简单点的能做,甚至模仿木马),这些我都做过,很简单,很容易。
等你VB学够了,对编程有点了解了,再想往别的方向发展,你再好好考虑下吧。
⑹ 请给一些Windows中网络编程的资料
为一个不断进取的编程者,我们常常不满足于编程语言所提供的一般功能,总是希望能够实现一些特殊的功能,这有时不但是我们程序的要求,有时也是编程者心理上需要(试想,还会有什么比在深夜中巧妙解决一个难题而更令人兴奋呢?)。VisualBasic,做为一个当前最流行的快速编程环境,就给我们提供了实现这些目标的平台,事实上,它无限扩展的API接口可以实现所有WINDOWS下可以实现的功能。然而对于初学者来说,“浩瀚“的API函数总是显得那么神奇与不可琢磨,因此在实际应用过程中不能够灵活应用。下面我将结合两个小例子来示范介绍VB中调用API函数的步骤和功能,并总结说明在实际工作中如何提高这方面的技巧。例子在WINDOWS98下采用VB6.0编译。
一.限制鼠标的移动
---- 有时我们的软件要求用户在未完成某一任务时,鼠标不能移出当前活动控件,换句话就是将鼠标限制在控件的内部,直到任务完成或用户中断为止。这个功能借助API函数实现起来思路很清楚,代码也很简洁。其思路是先确定当前鼠标的位置;然后确定当前活动控件的大小;最后将鼠标限制在活动控件内。(下面忽略项目建立等过程)
---- 1.建立一个新项目:新窗体为form1,在form1上添加一个commandbutton,设置其Name=CMButton1;Caption=“将鼠标限制在此按钮中“
---- 2.拷贝API函数和POINTAPI结构:打开VB6.0自带的API浏览器,调入WIN32API.txt文件,复制以下结构和函数声明到form1的声明部分:
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function ClientToScreen Lib
“user32“ Alias “ClientToScreen“ (ByVal
hwnd As Long, lpPoint As POINTAPI) As Long
‘用来确定当前鼠标的位置
Private Declare Function ClipCursor Lib
“user32“ Alias “ClipCursor“ (lpRect As Any)
As Long ‘用来限定当前鼠标的活动范围
---- 3.定义一个通用过程ConfineTo
Public Sub ConfineTo (myCtl As Object)
On Error Resume Next
Dim tmpRect As RECT
Dim pt As POINTAPI
With myCtl
If TypeOf myCtl Is Screen Then ‘锁定在屏幕范围内
tmpRect.Left = 0
tmpRect.Top = 0
tmpRect.Right = (.Width \ Screen.TwipsPerPixelX)
tmpRect.Bottom = (.Height \ Screen.TwipsPerPixelY)
Elseif TypeOf myCtl Is form ‘锁定在窗体范围内
tmpRect.Left = (.Left \ Screen.TwipsPerPixelX)
tmpRect.Top = (.Top \ Screen.TwipsPerPixelY)
tmpRect.Right = (.Left + .Width) \ Screen.TwipsPerPixelX
tmpRect.Bottom = (.Top + .Height) \ Screen.TwipsPerPixelY
else
pt.X = 0
pt.Y = 0
Call ClientToScreen(.hWnd, pt)
‘获取当前控件在屏幕上的位置
tmpRect.Left = pt.X
‘保存当前控件位置
tmpRect.Top = pt.Y
pt.X = .Width
pt.Y = .Height
Call ClientToScreen(.hWnd, pt)
tmpRect.Bottom = pt.Y
tmpRect.Right = pt.X
End If
Call ClipCursor(tmpRect)
End With
End Sub
---- 4.在 CMButton1_Click()中加入以下代码
Static Cliped As Boolean
‘静态变量用来控制状态切换
If Not Cliped Then
ConfineTo Cmbutton1
Cliped = True
Else
ConfineTo Screen ‘取消鼠标限制
Cliped = True
End If
---- 5. 运行后,鼠标点击cmbutton1,此时鼠标只能被锁定在此按钮内部,再次点击按钮,限制取消。
二.创建临时文件
---- 临时文件用来保存软件运行过程中的临时变化,这对于熟悉WORD等软件的人来说,经常会遇到。那么临时文件是如何产生的呢,其实很简单,只需要一个API函数就可以。
---- 1.拷贝声明函数(方法同前)
Private Declare Function GetTempFileName Lib “kernel32“ _
Alias “GetTempFileNameA“ (ByVal lpszPath As String, _
ByVal lpPrefixString As String, ByVal wUnique As Long, _
ByVal lpTempFileName As String) As Long
参数定义如下:
lpszPath =传入保存临时文件的路径 ,如“C:\mytemp“
lpPrefixString=传入临时文件名开始的前三个字母,
起到帮助识别临时文件来源的作用。
wUnique =0 ,windows随机产生文件名;否则安其值定义文件名。
lpTempFileName=返回随机文件名
---- 2.返回临时文件名
Private Function GenTempName(sPath As String)
Dim sPrefix As String
Dim lUnique As Long
Dim sTempFileName As String
If IsEmpty(sPath) Then sPath = “c:\temp“
sPrefix = “TVB“
lUnique = 0 ‘windows随机给名
sTempFileName = Space$(100)
GetTempFileName sPath, sPrefix, lUnique, sTempFileName
sTempFileName = Mid$(sTempFileName, 1,
InStr(sTempFileName, Chr$(0)) - 1) ‘去掉多余空格
GenTempName = sTempFileName
End Function
---- 3.将下面代码加入到form1_click()事件中
MsgBox GenTempName(“c:\temp“)
---- 4.运行,鼠标点击form,弹出msgbox,显示生成“c:\temp\TVB724.tmp“文件,用文件管理器查看,在c:\temp下有TVB724.tmp 文件,长度为0K。
---- 需要注意的是,传入的路径必须是有效路径,否则GenTempName函数返回0,lpTempFileName中也没有临时文件名。
三.结束语
---- 从上面可以看出,API函数的确简单高效,但也充满一些看似高深的变量而使人却步。我们不禁会问,究竟什么时候要用到API函数?具体哪些函数可以解决我的问题?,那些函数中的变量都代表什么?其实对这些问题,即使对一个VB高手也难给出明确的回答,因为API函数库实在太庞大了,每一个人最终只能熟悉其中的一小部分(这也可能是调用API的文章层出不穷的原因吧)。总结自己的一点经验,我觉得应该注意以下几点。
---- 1.熟练掌握VB基本技巧,了解其所能所不能,这是最基本的要求。
---- 2.了解WINDOWS内部控制机理,这样对一些复杂的问题就可以逐步分析其调用机制,初步确定采用哪部分的API函数来解决问题。
---- 3.案头必备一本最新的VB版的WINDOWS API 大全,推荐机械工业出版社的< >。书中给出了每一个VB可以调用的API函数的详细说明,可以帮助精确了解所需要的API函数的变量声明。
---- 4.多看别人的程序。报纸杂志,尤其是网上这方面的文章数不清。这是最快的方法。
---- 5.随用随查。永远不要在用不到的函数上浪费宝贵的时间
⑺ VB6.0基础教程学习
http://www.ibook8.com/book/vb.htm
VB编程工具
Visual Basic 6.0简体中文版 Visual Basic 6.0绿色精简版 MSDN VB6精简版
VB入门教程
VB程序设计系列教程 VB 趣味例程 VB6实例教程
中文VB6傻瓜书 VB最简单入门教程 VB 6.0中文版范例入门与提高
VB初哥教学 VB编程标准 看实例学VB 6.0
VB.NET学习教程 VB.NET控件时尚编程百例 VB 中文版实用培训教程
VB经典编程 VB6循序渐进教程 VB 6.0 中文版教程
VB_NET实例解析与应用编程 VB.NET中高级篇 VB精彩编程200例
VB超级教程 VB API函数大全 Visual Basic 6.0实例教程
VB 6.0数据库开发学习教程 VB.NET数据库编程从入门到精通 VB6.0入门提高
21天学通Visual Basic.NET Visual Basic.NET实用全书 Visual Basic.NET学习范本
Visual Basic.NET培训教程 Visual Basic实用编程标准 VB学习教程
VB的控件的学习
VB编程开发技术
COM+与VB6分布式应用程序设计 Visual Basic 插件开发人员指南 VB.NET高级开发指南
VB.Net高级编程 VB.NET 面向对象可重用组件开发 Visual Basic精彩编程200例
VB.Net多媒体编程 VB.NET高级程序员指南 Visual Basic.NET GDI+技术教程
VB.Net控件应用编程实例教程 VB.NET XML Web开发人员指南 VB和SQL Server编程指南
用VB.NET开始Asp.NET1.1的开发 VB 游戏编程学习系统 Visual Basic.NET 编码技术
VB.NET面向对象CLASS的实现 VB.NET应用集锦例程 VB.NET实例解析应用编程
Visual Basic.Net与动态网页技术 VB6开发宝典 VB系统资源
VB 例程序讲解 VB.NET数据库开发实例 VB.NET与数据库开发教程
VB语言程序设计 VB.NET面向对象的实现 Visual Basic 6.0应用编程150例
Visual Basic.NET项目开发实践 Visual Basic 6.0 开发宝典 Visual Basic 6.0网络编程
Visual Basic6.0企业级应用程序开发 Visual Basic6.0数据库程序设计 Visual Basic .NET程序设计基础
Visual Basic.NET数据库开发教程 Visual Basic 6 循序渐进教程 VB游戏编程21天自学通
Visual Basic.NET进销存程序设计 Visual Basic程序设计导学 Visual Basic.NET技术内幕
VB.NET和SOL Server 2000高级编程 利用VB设计打印复杂报表 Visual Basic.NET编程基础
Visual Basic6.0元件程序开发指南 VB.Net网络数据库整合应用 Visual Basic或C#创建WS
Visual Basic.NET程序设计与应用
VB开发手册与指南
VB.Net与ASP.Net代码手册 VB 6.0中文版语言参考手册 VB编程经验手册
VB API 函数使用手册 VBA高级开发手册 VB速查手册之技巧篇
VB.NET Remoting 技术手册 VB.Net调试技术手册 Visual Basic 6.0 组件工具指南
VB.Net字符串和正则表达式参考手册 VBScript语言参考 VB6程序设计参考手册
VB技巧问答10000例 VB5 开发WEB数据库指南 VBscript英文帮助手册
VB6控件参考手册 VB6语言参考手册 VB6程序员指南
VB5开发WEB数据库指南 VBA 高级开发指南 VB中文版实用参考手册
VB编程经验手册 VB6组件工具指南 Visual Basic API函数参考手册
Visual Basic 6.0实用参考手册 Vsual Basic 6.0 控件参考手册 Visual Basic.NET类设计手册
Visual Basic.NET 语言参考手册 Visual Basic.net 反射参考手册 Visual Basic.net线程参考手册
Visual Basic编程经验手册 Visual Basic.Net专家指南 Visuai Basic.NET编程培训教程
VB速查手册之技巧篇 VBscript英文帮助手册
VB其它相关资源
VBSCRIPT函数方法速查 Visual Basic 第三方控件大全 Visual Basic 语言参考-函数速查
Access 2003 VBA 程序员参考书 VB、C快速进阶 V3.0 VB系统资源
VB Script语言参考 VB编程技巧集 VBScript 教程及语言参考
VBScript与JScript实例教程 VB精华文摘 Visual Basic 术语解释
VB常用函数 VBScript学习 VB学习一点通
VB Script基础 VBScript 帮助手册 Visual Basic 常用数值算法集
VB视频相关
VB编程与应用(电大)29讲 编程经典Visual Basic 用多媒体学Visual Basic
电子科大--- VB程序设计 VB.net多媒体教学
⑻ 学习C++多线程和C++网络编程需要看哪些书
C专家编程
作者:PETER VAN DER LINDEN
出版:人民邮电 出版日期:2010年05月
《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。书中C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。全书撷取几十个实例进行讲解,对C程序员具有非常高的实用价值。本书可以帮助有一定经验的C程序员成为C编程方面的专家,对于具备相当的C语言基础的程序员,本书可以帮助他们站在C的高度了解和学习C++。
Visual C++黑客编程揭秘与防范
作者:梁洋洋 编着
出版:人民邮电出版社 出版日期:2009年07月
本书全面介绍了在VisualC++环境中,使用WindowsSocket及API 开发各类防范黑客软件及安全防护工具的编程实现方法,深入剖析了目前热门的黑客编程技术。本书通过基础篇、提高篇、综合篇和拓展篇这种循序渐进地方式,向读者介绍了防范黑客攻击程序、安全防护工具、远程控制软件和网络安全管理软件的原理及具体编程实现方法。 本书内容丰富,实用性和实战性强,不仅包括读者必备的防范黑客的编程知识,更深入阐述了网络编程方面的高级技术。不仅适用于黑客程序开发,在读者掌握了本书介绍的各种编程技术后,还
C#网络编程技术教程
作者:金华,华进 编着
出版:人民邮电 出版日期:2009年01月
本书是一本系统介绍C# 网络编程技术的教材,全书共11章,由两部分组成。第1部分(第1~5章)为基础知识,内容包括VisualC#.NET集成开发环境、C#语言的基础知识、面向对象的程序设计、C#的Windows编程方法、C#的常用数据类、网络编程的基本概念、网络套接字编程以及多线程编程的方法概述等。第2部分 (第6~11章)介绍网络编程的几个常用领域,内容包括TCP/UDP编程、FTP 编程、电子邮件协议编程、HTTP编程、WebService编程以及密码术网络编程等。
从新华书店文轩网上搜索的,供参考
⑼ 介绍些C语言的教程
谭浩强C语言
http://www.codeguru.cn/cpp/TanHaoQiangC
十部算法经典着作 合集
http://www.codeguru.cn/cpp/10book
二级试题全集
http://www.codeguru.cn/cpp/2JiCShiTiJi
高质量C++/C编程指南
http://www.codeguru.cn/cpp/AdvanceC++-CProgramGuide
应用C++技术构建优质软件
http://www.codeguru.cn/cpp/AppliedCpp
ASCII码表
http://www.codeguru.cn/cpp/ASCII
C\C++语言程序百例
http://www.codeguru.cn/cpp/C&&C++YuanYanChenXuBaili
C++编码规范与指导
http://www.codeguru.cn/cpp/C++CodingGuide
C++PrimerPlus4th
http://www.codeguru.cn/cpp/C++PrimerPlus4th
C++语言程序设计课件(作者:郑莉)
http://www.codeguru.cn/cpp/C++ProgramingZhengLi
C++语言程序设计
http://www.codeguru.cn/cpp/C++YuYanChengXuSheJi
C语言函数示例集
http://www.codeguru.cn/cpp/CFunctionExamples
C高级编程技术
http://www.codeguru.cn/cpp/CGaoJiBianCheng
C语言技术文章
http://www.codeguru.cn/cpp/CLanguageArticle
C++疑难解答
http://www.codeguru.cn/cpp/CppAQ
C++实践之路
http://www.codeguru.cn/cpp/CppInAction
C++应用程序例解
http://www.codeguru.cn/cpp/CppProgramLiJie
C++参考
http://www.codeguru.cn/cpp/cppreference
CPrimerPlus5thEdition习题答案
http://www.codeguru.cn/cpp/CPrimerPlus5thEditionAnswer
C语言编程宝典之一
http://www.codeguru.cn/cpp/Cprogramdict
C语言参考手册
http://www.codeguru.cn/cpp/Creference
C语言学习和精华文摘
http://www.codeguru.cn/cpp/CStudyAndArticle
数据访问模式
http://www.codeguru.cn/cpp/DataAccessPatterns
数据结构与算法综合资料库
http://www.codeguru.cn/cpp/DataStructsLibrary
数据结构-严蔚敏
http://www.codeguru.cn/cpp/DataStructYanWeiMin
Effective C++
http://www.codeguru.cn/cpp/EffectiveCpp
GenericProgramming
http://www.codeguru.cn/cpp/GenericProgramming
设计模式迷你手册
http://www.codeguru.cn/cpp/MiniDesignPattern
经典排序算法
http://www.codeguru.cn/cpp/SortingAlgorithms
TheC++ProgrammingLanguage3rdEd
http://www.codeguru.cn/cpp/TheC++ProgrammingLanguage3rdEd
TheCprogrammingLanguage
http://www.codeguru.cn/cpp/TheCprogrammingLanguage
TurboC2.0集成开发环境的使用
http://www.codeguru.cn/cpp/TurboC2ShiYong
用VC开发ACTIVEX
http://www.codeguru.cn/VC&MFC/ActiveXProgramingWithVC
用DirctX9进行高级3D游戏程序设计
http://www.codeguru.cn/VC&MFC/
APracticalGuideUsingVisual C++andATL
http://www.codeguru.cn/VC&MFC/
21天学会VC数据库编程
http://www.codeguru.cn/VC&MFC/
STL轻松入门
http://www.codeguru.cn/VC&MFC/EasySTL
InsideAtl
http://www.codeguru.cn/VC&MFC/InsideAtl
COM+组件服务技术内幕
http://www.codeguru.cn/VC&MFC/InsideCOM+
MFC参考手册
http://www.codeguru.cn/VC&MFC/MFCReference
Windows网络编程技术
http://www.codeguru.cn/VC&MFC/
OGRE手册
http://www.codeguru.cn/VC&MFC/OGREManual
OpenGL基础图形编程
http://www.codeguru.cn/VC&MFC/OpenGLJiChuTuXingBianCheng
MFC程序设计
http://www.codeguru.cn/VC&MFC/progmfc2
VC技术内幕
http://www.codeguru.cn/VC&MFC/ProgramingVC
Windows核心编程
http://www.codeguru.cn/VC&MFC/
21天学会ActiveX编程
http://www.codeguru.cn/VC&MFC/TeachYourselfActivexIn21Days
游戏编程大师技巧(第二版)
http://www.codeguru.cn/VC&MFC/
VC编程经验总结
http://www.codeguru.cn/VC&MFC/VCBianChengJianYanZongJie
VC编程资料
http://www.codeguru.cn/VC&MFC/VCBianChengZiliao
VC常见问题集(中文)
http://www.codeguru.cn/VC&MFC/VCFaqsCN
VC高级编程
http://www.codeguru.cn/VC&MFC/VCGaoJiBianCheng
vchome图形图像编程技术篇
http://www.codeguru.cn/VC&MFC/vchomeGraph
VC知识库
http://www.codeguru.cn/VC&MFC/vckbase
VC语言参考手册
http://www.codeguru.cn/VC&MFC/VCLANG
vc++ 编程指南
http://www.codeguru.cn/VC&MFC/VCProgramGuide
Windows程序设计
http://www.codeguru.cn/VC&MFC/WindowsProgramming
Winsock程序员疑难解答
http://www.codeguru.cn/VC&MFC/WinsockProgrammerFAQ
Microsoft编程精粹
http://www.codeguru.cn/VC&MFC/WritingCleanCode