2014-03-11周二windows API编程学习

转自http://blog.sina.com.cn/s/blog_959878440100zf4x.html

我并不是计算机专业的学生,从事的工作也和编程没啥关系,并且是工作了五六年后开始在业余时间学习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应用程序的框架,是非常简明易懂的教学创新,虽然对相对老的程序员都是不言自明的概念,但对初学者是非常有帮助的。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值