学习win32 API编程大概需要学习多久才能够

Win32 Api编程指南_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Win32 Api编程指南
&&Win32 Api编程入门指南
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩34页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢想学windows win32 API编程,请问有什么好的学习资料和学习路径_百度知道
想学windows win32 API编程,请问有什么好的学习资料和学习路径
我有更好的答案
这就是所谓的Petzold风格,又可做eference,不厌其烦。同时,这本书篇幅虽然不小。通常第一次阅读这本书,都会觉得作者行文有一些罗嗦。但是日后在开发中。这本书的优点是落墨细致,所以能够把很多问题讲得非常透彻,却会发现,这些当时觉得罗嗦的论述,都是实际工作中值得反复查阅咀嚼的宝贵资料,对基本概念和基本技巧的解释非常详尽对于你的要求只有一本书可看!《Windows 程序设计(第5版)》 这是一本最权威的Windows API编程书籍,本书被称为Windows程序设计的“圣经” 这本是尽人皆知的Win32 API编程经典,也称为“Petzold Book”,学习Win32 API编程的人几乎都从这本书入手,既可做tutorial,但是包容的东西并不多,基本上把重点放在GUI编程上和常规编程任务上
采纳率:96%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客访问: 303699
博文数量: 218
博客积分: 7027
博客等级: 少将
技术积分: 2009
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
Win32系统编程之四书五经创建人:DearBook技术编辑 DearBook_Tech 好文章! 给作者敬个礼(感谢孟岩老师为大家提供这篇学习指南,本文发表于《程序员》11月上半月期)通常在某一个具体细分的技术领域,会自然而然地出现3-5本顶级著作,它们彼此互相配合,形成一个完整的体系。我乐于将这种现称为“四书五经现象”。本期就从Win32系统编程开始。 几年前,台湾著名技术作家侯捷先生曾经写过一篇影响很大的书评文章,叫做《MFC四大天王》。文章的意思是说在MFC的浩瀚书海中,只要认真研读和学习其中四本,就可以“五岳归来不看山”。侯先生虽以MFC为例,但是这个道理却同样适合于MFC之外的很多具体技术领域,这不能不说是一个有趣的统计现象。通常在某一个具体细分的技术领域,会自然而然地出现3-5本顶级著作,它们彼此互相配合,形成一个完整的体系。对于学习者来说,只需要认真研读这几本书,就足以升堂入室。我乐于将这种现称为“四书五经现象”。对于读者来说,如果能够找到该领域中的“四书五经”,则无论在时间上还是金钱上都是最经济的选择。好书几本,胜过烂书几捆,这个体会想必大家都有。为此,《程序员》杂志开辟了这样一个新的书评专栏,帮助读者遴选各个技术领域里的“四书五经”。本期就从Win32系统编程开始。所谓的Win32开发,就是在C语言的层面上,直接使用Win32 API开发Windows应用程序或者系统程序。虽说现在直接用Win32 API开发应用程序的人已经不多了,深入理解Windows系统程序设计原理,仍然是成为Windows开发高手的必经之路。所谓的Win32,其实是一个API规范,与UNIX系统编程接口标准POSIX是同一个性质的概念。从设计上讲,Win32绝对算不上是简洁优雅,因此学习Win32系统编程,相对来说是比较困难的。Win32来源于Win16,而Win16最初设计于1980年代中早期。设计Win16的时候,Microsoft还是一家小公司,应该说能力还有限。同时,Win16的主要目标是DOS之上GUI系统,设计上偏重GUI部分,在系统编程领域考虑不多。等到设计Win32时,微软能力增强了,有心要把Win32打造成第一流的操作系统API规范,但是已经背上了Win16的历史包袱。所以相对而言,Win32的设计实在赶不上POSIX那么简介优雅。微软在随后又先后进入了COM时代和.NET时代,每一次进步都需要继续背负以前的历史包袱,使得微软的技术体系越来越复杂。微软技术的复杂性,是微软与Java竞争中的最大弱势。而对我们程序员个人来说,无论你现在是在学习和使用最新的.NET技术,还是继续坚持COM开发模型,要克服微软技术的复杂性,必须上溯到Win32。那么Win32领域的“四书五经”是那些?我们一一道来:1. Charles Petzold, 《 Windows 程序设计(第5版)(上、下册) 》 北京大学出版社这本是尽人皆知的Win32 API编程经典,也称为“Petzold Book”,学习Win32 API编程的人几乎都从这本书入手。这本书的优点是落墨细致,对基本概念和基本技巧的解释非常详尽,不厌其烦。同时,这本书篇幅虽然不小,但是包容的东西并不多,基本上把重点放在GUI编程上和常规编程任务上,所以能够把很多问题讲得非常透彻。通常第一次阅读这本书,都会觉得作者行文有一些罗嗦。但是日后在开发中,却会发现,这些当时觉得罗嗦的论述,都是实际工作中值得反复查阅咀嚼的宝贵资料。这就是所谓的Petzold风格,既可做tutorial,又可做reference。几年前,人民邮电出版社出版过一本Charles Calvert的《 21天学通WINDOWS 95编程(上、下册) 》,那本书的定位与“Petzold Book”相似,而且写得也非常出色,在控件编程方面的阐述甚至超过了“Petzold Book”。可惜这本书完全被“Petzold Book”的光芒所覆盖。不仅国内没有再版过,而且原出版者也彻底打消了与“Petzold Book”对抗的念头。现在仍然用Win32 API直接开发GUI的人,恐怕是少之又少,所以这本书的意义不及当年。更公允的说,Petzold Book现在最大的意义是作为Win32的入门教材。不经过它的洗礼,很难升堂入室。2. Jeffrey Richter, 《 Windows核心编程 》第四版 机械工业出版社这本书的前三版名为Advanced Windows,第四版改名为Programming Applications for Microsoft Windows。作者在前言里还特别讲了改名的原因。但是在我看来,这本书还是叫做Advanced Windows更贴切。因为这本书虽然同样是讲Win32 API,却几乎和Petzold Book没有任何重复。初级的内容完全略过不提,GUI部分也是一带而过,全书顷力与系统编程,一上来就讲Win32核心对象,从进程到线程,从DLL到SEH,从钩子到内存管理,可以说是不避艰险,迎难而上,将最复杂最微妙的细节完整展现出来,同时配备又大量精心准备的例子,代码质量非常高超。因此,这本书从问世之日起,就成为Win32系统编程方面的圣经,作者Jeff Richter也成了Win32编程方面的绝对权威。想要学习Win32核心编程,不读这本书是无法想象的。遗憾的是,这本书的中文版翻译配不上原书的高水平,可以说是大错不多,小错不少。如果有读者要认真研读此书,可以去寻找北京大学出版社出版的影印版。这本书是Richter的代表作,也奠定了Richter世界顶级技术作家的地位。我本人非常喜欢读Richter的书,因为他的文字是写给专业人士看的,决不假装弱智,同时有相当体贴细致,非常符合我的习惯和胃口。所以通常在某个领域有了Richter的书,我就不会去看别人的书了。对于某些读者来说,Marshall Brain的Win32: System Service 3/e(中文名《深入学习:Win32系统服务开发与实例》,电子工业出版社“深入学习”系列)和Johnson Hart的Win32 System Programming 2/e(中文名《 Win32系统编程—Windows 2000应用程序开发指南(第二版) 》,中国电力出版社)都是不错的选择。两本书的论述都不如Richter深入,但是例子精当,讲解恰到好处。Brain的书覆盖面很广,例子非常有启发性,而Hart的书最适合从UNIX转到Win32的朋友。我发现自己在有空闲的时候喜欢啃Richter的书,但是在实践中需要快速学习解决方案时,反而Brain和Hart的书对我更有帮助。所以这两本书虽然不象Richter那么必须,但是也是非常实用的补充。Petzold Book和Richter的这本书,构成一个连冠一致的系列,一般Win32学习者精读并且基本掌握这两本书的主要思想和技术,就可以称得上是Win32系统开发的专家了。如果说这两本书的弱点,主要存在两个方面。其一是两本书写作时将Win9X的开发作为一个基本出发点,因此对于Win2000平台的新特性介绍不足。特别是对于Windows 2000服务端高性能软件的开发,基本上没有涉及,很多Win32特有的机制也没有覆盖到。因此,如果想在Win32方面再上一层楼,可以考虑Jeffrey Richter的另一本书。3. Jeffrey Richter, Programming Server-side Application for Microsoft Windows(影印版)北京大学出版社知道I/O Completion Port吗?知道如何在多CPU服务器上把机器的能力发挥到极至吗?知道如何利用Windows的logging service吗?知道如何利用WMI开发服务端程序吗?即使你是一个Win32开发高手,也许对上述问题也会感到困难。随着一般应用程序的开发逐渐转移到Java、.NET或者至少Delphi这样的RAD平台上,Win32能够完全发挥威力的最后一个角落,大概就是服务端高性能程序设计了。而如果你想在这个领域有所建树,Jeffrey Richter的这本书就不可不读。这本书几乎是这个领域里唯一的一本书,而Jeffrey Richter的实力又保证了这本书的水平达到了相当的高度。读这本书给人以震撼的快感,你会感叹,Jeffrey Richter对于Windows系统的理解竟能够达到如此深度!这本书跟上面提到的Petzold Book和《 Windows核心编程 》几乎又是零重叠,所涉及的内容都是高级技术,特别是自Windows 2000以来出现的服务器软件开发新技术。与前两本配合起来,形成了一条从基础到专家的完整链条。在当今业界,仍然使用纯Win32开发程序的开发者,又不少是在金字塔顶端的“高手”级人物。如果说Petzold Book在今天的主要意义在于教育,《 Windows核心编程 》的主要意义在于深化你对系统的理解,那么这本书中教授的知识是实实在在吃饭的家伙。因此,对于高手和有志最终成为高手的程序员来说,这本书是一本难得的经典。 Windows编程从入门到精通 创建人:某自动化公司研发部经理 shooterlily一般计算机本科学生应该学过Pascal或C语言,如果你没接触过C++,推荐两本书,清华出版社钱能的《 C++程序设计教程 》,机械工业出版社Jesse Liberty的《 C++ 自学通 》,两本书都是先复习C语言语法再介绍C++面向对象的基本概念,国内一些大学本科采用前者作为教材,后者对C++各主要概念都有涉及,任选一本看看,总之入门最好不要选择比较难的书,如《 C++编程思想(英文版•第2版) 》,有可能会打击你的学习兴趣。有了C++的基础,可以开始接触VC,入门的一本书是《 VISUAL C++6从入门到精通 》,该书简单介绍了VC对话框应用中基本控件的使用,书名夸大其辞,入门还行,精通是远远不够,但作为没接触过VC环境的程序员来说简单易懂。
前面推荐的是几本入门书,自己的印象已经有些模糊,也许很多人会不同意我的观点,但下面列出的书目反对的人应该会少很多,因为它们基本上都是经典之作。
第二本可以看经典的清华出版社的《 Visual C++技术内幕(第四版) 》,这本书质量不错,但有点被过度的推崇了,可能和作者的英年早逝有些许关系,这本书放在这个位置阅读可能会有一部分看不懂,没关系,跳过去,以后水平提高后再回头翻一翻。
第三本推荐看华中科技出版社侯捷的《 深入浅出MFC(第二版) 》,侯捷是台湾著名的技术专家,在国内有很高的声誉,这本书可以带你理解MFC程序的生与死,以及AppWizard生成的那些该死的宏到底是什么意思。这时你应该对使用VC编程有比较明确的概念了,也许你需要对C++再做适当的充电,比如异常、模板等概念的了解,如果有人问你拷贝构造函数是什么意思,你能回答出来吗?Bruce Eckel的《 C++编程思想(英文版•第2版) 》也许在这个时候要容易看懂一些,这本书名气很大,值得一看,但个人认为也是有些言过其实,可能是翻译的原因。
如果需要解决MFC编程的一些疑惑,推荐一本书,《 MFC经典问答 》,看过之后你会后悔怎么没早点听说这本书,一些实际编程时常见的困难问题都得到了解释,这本书还可以作为日常编程的参考书。
如果感觉调试程序有些不够在行的话,建议你一定要去阅读John Robbins的《应用程序调试技术》,这本书对于调试技术讲的极好,特别有一章介绍了VC调试器的使用,如果你不知道VC调试器的Set Next Statement有何妙用的话,你应该好好读读那一章。我丝毫不吝惜对这本书的赞美之词,因为它的确很棒,我也读了两遍(当然不能连续读,又不是背书准备考试)。编写WINDOWS程序如果不会用API还是很困难的,这里推荐大家阅读Charles Petzold的《 Windows 程序设计(第5版)(上、下册) 》,北大出版社出版,这是WINDOWS编程的圣经,应该是优秀程序员必读的书,而作者也是WINDOWS编程领域的大师,看书就应该看大师的书。
你对于C++的理解和专家对于C++的理解有什么差别吗?看看Scott Meyers的《 Effective C++中文版 》和《 More Effective C++中文版 》,你会明白什么叫做差距。另外还有一本Stanley Lippman的《 C++ Primer 中文版(第三版) 》,是和Stroustrup的《The C++ Programming Language》齐名的巨著,但1000多页的大砖头可以砸死人。
当你看了上面的书感觉不错的话,那么你应该更进一步,看一看机械工业出版社出版,Jeffrey Richter的《 Windows核心编程 》,这本书也被奉为至尊,无需多言,作者也是一位大师,现在在.NET下已经修成正果,出版了最负盛名的.NET书籍《 Microsoft.NET框架程序设计(英文版) 》,成为一代宗师。唯一遗憾《 Windows核心编程 》中文版翻译的不好,甚至有将肯定语气翻译为否定语气的情况,一本书有二十个译者,翻译质量也可想而知,所以最好对照英文的电子版看。巧合的是《 Microsoft.NET框架程序设计(英文版) 》中文版的翻译也广受批评,好在清华出版社还算负责,承诺近期将推出其修订版,不过至今未果。书看到此处,你应该已经是WINDOWS编程的小高手了,技术方面已经没有什么太大的问题了,你已经有很多的实际编程经验,这时候需要补充一些设计方面的知识。编程需要培养三方面的知识,技术、算法、设计,程序员一般很注重技术,而往往对算法和设计不太在意。在做较大型的项目时,设计是尤其重要的,因为常用的算法一般可以下载到源代码或库文件直接使用,而设计却是抄袭不来的。提到设计不能不提近年来很热的一本书,Gof的《设计模式--可复用面向对象软件的基础》,的确是非常非常好的一本书,不过也许你会看得云里雾里的,没关系,先掌握一些概念,因为现在模式已经成为一门专业语言,和别人交流时直接说采用某某模式要比说一大堆话简单的多,看完后需要再补充别的一些参考书,再做些习题,设计不通过动手很难真正领悟和掌握的。
另一本与《 设计模式--可复用面向对象软件的基础 》并称“软工双雄”的书叫《重构——改善既有代码的设计(中文版)》,个人认为只要阅读前4章学习学习思想即可,当然这洗脑的作用还是值得的。还有一本网上评价很高的书,《 敏捷软件开发:原则、模式与实践 》,这本书获得SDMagazine第13届Jolt大奖,建议大家有空去读一读,本人正在学习中,感觉不错。
阅读(1567) | 评论(1) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
很好的文章,看完很受启发
请登录后评论。windows&API编程学习
我并不是计算机专业的学生,从事的工作也和编程没啥关系,并且是工作了五六年后开始在业余时间学习windows编程的,这种背景下开始学编程确实比较痛苦。
买了Charles Petzold&的《windows
程序设计》看着肯定是头大的,云里雾里,WinMain函数看着都头大。学习这本书的编程技术你首先得非常熟悉C语言。
所以你还得从起点开始,学习C语言吧。我看的是谭浩强的《C程序设计》,1991年的版本,20年前的版本了,有些C语言的语法已经变化。想想时间过的真快,或者是这个世界本来就没啥真正的新东西。看完了觉得C语言理解了指针的概念和操作外也就没啥东西了,就是对位的操作,并且把这种操作用函数作为模板固化下来。在没有接触其他的编程概念之前,看这本教材是很无聊的,上面的习题刚开始很玩具,后面概念复杂一点的时候或者涉及的例子的数学模型没接触过的时候如果钻进去会拖慢自己的脚步,并且产生顿挫感。我的做法是刚开始沉下心来读完指针前面的章节,并且做相关例子,读指针以及后面的章节主要是多理解了,举例在这后面相对复杂一点都没做了,很快就读完第一遍了,对C语言是啥东西有了比较整体的了解。
这时候读Charles Petzold 的《windows
程序设计》可能会仍比较痛苦的,可能还是因为自己的火候不够,也可能在最开始的章节这本书描述的编程环境相对老一些,和最新的环境生成的源代码有一些差异。在VS2010的编程环境下研究过windows.h头文件,对其进行了展开,感觉实际操作系统的头文件相互包含关系要复杂的多,要彻底了解windows
API涉及的各个头文件的内容和相互关系会费一番脑筋的,于是放弃了,但对windows 程序从某种层面上有了一些自己的直观感受。
这时候有尝试过读严蔚敏的《数据结构(C语言版)》,也放弃了,感觉不开始windows
编程离自己的目标太远,而学数据结构目前看不到直接的联系,还是得先研究windows 编程的机理。
尝试读王艳平、张铮的《windows程序设计》,但刚开始涉及太多windows
内核对象等内容,对我这种外行对操作系统原理不熟悉的门外汉来说比 Charles Petzold 的书还不友好,只能暂时放弃。
很幸运买了秦海玉的《windows游戏程序设计基础》,2011年10月的版本,应该是刚出版的书。这本书前三章写的真的非常简单易懂,也许与作者可能收集了很多初学者的疑问并且做了整理有关。怎么说,这本书并不像一本由初始材料简单堆砌的书,感觉是作者有感而发,而写的一本,虽然作者不止一个。
书中提到程序设计专业中的必修课和开课顺序一般是这样的:C/C++、数据结构、Windows程序设计、DirectX程序设计,但对于开发平台明确为windows
的程序员,我想顺序可能是这样的:C 、Windows
程序设计、数据结构、C++、DirectX程序设计。可以很快的开始接触Windows程序设计,因为这仅需要C语言的知识。
书中提到作为一名游戏程序员,不仅仅应该只会造句(C语言、数据结构、Win32
API),更应该懂得如何写文章。我理解是基础知识学了之后要学会进行需求分析和实现,能够深刻把握需求的本质,进行好的软件设计。
书中第一章明确了 C语言的函数实现也是通过Win32 API完成的,Win32
API比库函数更接近windows平台本身。
第二章会比较详细的解释
stdafx.h头文件的用途(这个VS2010自动生成的头文件会让人困惑)、main与_tmain函数、tchar.h头文件的作用,THAR与Unicode的使用、常用Win32
API数据类型,Debug、Release环境的使用区别,用的篇幅很短,但都讲的比较清晰。
第三章讲了WinMain、wWinMain、APIENTRY、CALLBACK(到这里明白WINAPI
修饰WinMain的含义了,原来是__stdcall)、消息与窗口函数等等,特别是这章最后的总结性的一个制造汽车的类比来讲windows应用程序的框架,是非常简明易懂的教学创新,虽然对相对老的程序员都是不言自明的概念,但对初学者是非常有帮助的。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。学习win32 API编程大概需要学习多久才能够入门呢!-CSDN论坛
学习win32 API编程大概需要学习多久才能够入门呢!
学习win32&API编程大概需要学习多久才能够入门呢!
我指的入门是编写出来一个&简单的单机小游戏!
另外就是大家在使用API编程的时候是复制的多一点呢!
还是自己手工写代码的多?
我初学者!@我把各类有用的代码全部集合在了一起
使用地时候直接复制!大概明白什么意思!但如果不复制的话!
我根本既不清楚那些函数!
这样如果做出来一单机小游戏的话!属于我自己的吗?
同问,还有,那些函数的应用是不是基本上要靠看msdn才知道呀?刚学VC,迷茫中。数学转过来的,没啥编程基础
3到6个月吧。
呜呜呜!!3-6个月是学习到什么地步了呢??
大概就好!
SDK编程,配合vissitX&和MSDN。就可以了。
自己常用的代码最好做个笔记。封装成dll之类的。。
这样就属于自己&的了?
加油!入门应该不难~以个月就够了!看你勤奋程度了~!
会点C的基础和Windows的消息机制基本上就可以了
其实一个函数怎么用没有谁记得很清楚的,
在使用的时候查就是了,你需要做的是要记住
系统有这么个API能实现什么功能,至于这个函数长啥样记不记住这不重要,
查就是了.问题是你要想在Win32编程方面有造诣的话,
最基本的工夫是要了解Windows的消息机制,然后是进程呀线程呀
同步呀,系统的核心对象呀等等
建议在了解基本Win32编程后你看看Windows核心编程
书未必一定要一次看懂似懂非懂都可以,
多看几遍就是.还有一个最重要的就是一定要动手编写代码跑跑看,
这个非常重要.
要记住没有人会为了学习API而去学习API.这个没必要,也不值.
引用&7&楼&nodiebirdcomeback&的回复:会点C的基础和Windows的消息机制基本上就可以了
其实一个函数怎么用没有谁记得很清楚的,
在使用的时候查就是了,你需要做的是要记住
系统有这么个API能实现什么功能,至于这个函数长啥样记不记住这不重要,
查就是了.问题是你要想在Win32编程方面有造诣的话,
最基本的工夫是要了解Windows的消息机制,然后是进程呀线程呀
同步呀,系统的核心对象呀等等
建议在了解基本Win32编……
回复

我要回帖

 

随机推荐