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

c语言windows api编程,windows API编程学习相关推荐

  1. C++使用Windows API CreateMutex函数多线程编程

    C++中也可以使用Windows 系统中对应的API函数进行多线程编程.使用CreateThread函数创建线程,并且可以通过CreateMutex创建一个互斥量实现线程间数据的同步: #includ ...

  2. 视频教程-精通Win32 API编程-Windows图形界面编程-C/C++

    精通Win32 API编程-Windows图形界面编程 黄强老师,国家软件设计师,软件开发工程师,项目经理.产品经理.培训讲师. 创业合伙人,多年C.C++开发经验,尤擅长移动互联网项目的开发! 黄强 ...

  3. Windows 文件、目录操作编程 常用API

    1.文件操作函数: CreateFile //创建或打开文件: WriteFile //写数据到文件: ReadFile //从文件读数据: CopyFile //拷贝文件: MoveFile //移 ...

  4. windows游戏编程_少儿编程该怎么学?看看帕拉卡3D动画编程创始人李西峙分享七个核心...

    原标题:少儿编程该怎么学?看看帕拉卡3D动画编程创始人李西峙分享七个核心 市场上,有很多教孩子们学习编程的平台.我认为,它们都太糟糕了.我宁愿让我的小孩去玩游戏,也不愿意让他们去这样的平台上学习编程. ...

  5. 初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程

    @TOC初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程 [1]什么是windows API Windows API 中文翻译过来就是windows应用程序接口(Applica ...

  6. Windows界面UI自绘编程(上)之上部

    Windows界面UI自绘编程(上)之上部 第一章 Win32程序基本框架 第二章 Win32对话框和文件的遍历(函数FindFirstFile.FindNextFile和SHGetFileInfo) ...

  7. day04--java高级编程:API:Object、String,Buffer、包装类、日期、java比较器、BigInteger、进制、length区别,IO流,路径,序列化id,编码

    1 API 1.1 Api文档下载 1.API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口,一切可以调用的东西都是API. ...

  8. Windows Embedded Compact 7网络编程概述(上)

    如今,不论是嵌入式设备.PDA还是智能手机,网络都是必不可少的模块.网络使人们更方便地共享设备上的信息和资源.而且,利用智能手机浏览互联网,也逐渐成为生活中的常见手段.物联网所倡导的物物相联,也离不开 ...

  9. 基于Winsock API的VC网络编程实战

    基于Winsock API的VC网络编程实战 随着计算机信息技术的飞速发展,互联网与人类社会的工作.生活越来越紧密相关,它已经成为人类获取.交流信息的重要途径和手段.所以当前对于开发人员来说,网络编程 ...

最新文章

  1. MySQL时间慢了八个小时
  2. echarts Cannot read property ‘getAttribute‘ of null 问题的解决方法
  3. C#与.NET程序员面试宝典 1.4.3 笔试(举例微软、雅虎笔试题目)
  4. 想要自学深度学习?不用GPU,浏览器就够了
  5. jquery 事件:2
  6. 对比学习系列论文CPCforHAR(一):Contrastive Predictive Coding for Human Activity Recognition
  7. 经典C语言程序100例之七七
  8. 重载练习3_实现重载的println方法
  9. bugly android8.1加固,2020-09-27 Bugly Android热更新使用指南
  10. HashMap1.7和1.8头插入与尾插入的原因
  11. Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083
  12. python断言assert
  13. 服务器上txt文件编辑器,网站后台文本编辑器使用方法
  14. vue 路由跳转返回上一级
  15. 调研:“淘宝村”、“网店村”是如何发家的?
  16. MT4白标升级MT5 用户信息
  17. 融云云盘,不止于存储
  18. nextJS 配置项
  19. 注意!这些设备禁止使用!物联卡网速慢、没信号的朋友请自行排查!
  20. 【数据结构与算法学习笔记001】Kalman滤波

热门文章

  1. java线程(2)--同步和锁
  2. 单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半
  3. C# WinForm开发系列 - TextBox
  4. 如何划分man文档的章节
  5. 最简单的视音频播放示例9:SDL2播放PCM
  6. C++ new delete(二)
  7. windows 8 “Fetch”远程获取
  8. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!...
  9. 一个列用render渲染的时候,如果列宽度不够,内容多出的部分会被隐藏,无法显示。这时需要一个鼠标滑过提示全部内容的tip功能。...
  10. python列表按照批次分配数据(亲测)