深入浅出Windows API程序设计:编程基础篇
上QQ阅读APP看书,第一时间看更新

前  言

2015年7月,Windows 10操作系统正式发行,新版本的操作系统在UI界面、安全性和易用性等方面都有了大幅提升。64位操作系统已经普及,但传统的Win32 API也属于Windows API。因为不管编译为32位还是64位的应用程序,使用的都是相同的API,只不过是扩展了一些64位数据类型。目前Microsoft Windows在操作系统市场中占据相当大的份额,读者学习Windows程序设计的需求非常迫切。但是遗憾的是,近年来国内可选的关于Windows API的图书较少。

使用Windows API是编写程序的一种经典方式,这一方式为Windows程序提供了优秀的性能、强大的功能和较好的灵活性,生成的执行代码量相对比较小,不需要外部程序库就可以运行。更重要的是,无论将来读者用什么编程语言来编写Windows程序,只要熟悉Windows API,就能对Windows的内部机理有更深刻、更独到的理解。

热爱逆向研究的读者都应该先学好Windows API程序设计,而初学Windows程序设计的读者可能会非常困惑。于是,在2018年年初,我产生了一个想法:总结我这10年的程序设计经验,为Windows开发人员写一本深入浅出的符合国内市场需求的图书。本来我计划用一年的时间撰写本书,可是没想到一写就是3年!

本书面向没有任何Windows API程序设计经验的读者,因此尽量做到通俗易懂。为了确保本书内容的时效性,MSDN是最主要的参考对象。我的初心就是把这10年的程序设计经验毫无保留地分享给读者,并帮助读者学会调试技术。另外,为了精简篇幅,大部分程序的完整源代码并没有写入书中。读者通过本书可以全面掌握Windows程序设计,对于没有涉及的问题也可以通过使用MSDN自行解决。

本书基于Windows 10和Visual Studio 2019(VS 2019)编写,并提供了大量的示例程序。首先介绍学习Windows程序设计必备的基础知识,并对可能用到的字符串处理函数做详细讲解。万事开头难。我从只有4行代码的最简单的HelloWorld程序开始,然后介绍具有标准Windows程序界面的HelloWindows程序。对于这两个入门程序的每一行甚至每个单词我都进行深入介绍,讲清楚其中的原理,让后面的学习水到渠成。接着,我会介绍Windows窗口程序、GDI绘图、键盘与鼠标以及计时器和时间等内容。然后,我会介绍一个程序界面所需的菜单、图标光标、位图、子窗口控件、对话框和其他资源等。最后,我会带领读者通过Photoshop切片和自绘技术实现一个优雅的程序界面。

本书适合人群

(1)初学Windows程序设计的读者通过本书可以高效全面地掌握Windows程序设计。

(2)学习Windows程序设计多年但仍有困惑的读者通过本书可以系统地学习Windows程序设计的方方面面。

(3)其他任何爱好或需要学习Windows API程序设计的读者,通过本书可以更好地了解Windows API程序设计的基本技巧。

读者需要具备的基础知识

在阅读本书之前,读者必须熟悉C或C++语法。除此之外,不需要具备任何其他专业知识。

读者可以获得的额外权益

(1)可以加入我提供的QQ群进行学习交流。

(2)可以到我提供的Windows中文网的相应版块中进行提问,我通常会集中时间进行统一解答。

相关图书推荐

读者在学习完本书后,可以继续阅读《深入浅出Windows API程序设计:核心编程篇》,进一步理解Windows API程序设计,并将其应用到实际场景中。

本书并没有涉及内核方面的相关知识。如果读者需要学习Windows操作系统的内核安全编程技术,那么推荐阅读谭文和陈铭霖所著的《Windows内核编程》和《Windows内核安全与驱动开发》。

致谢

本书可以成功出版,得益于多位专业人士的共同努力。感谢家人的无条件支持,感谢微软以及CSDN的朋友、15PB信息安全教育创始人任晓珲、《Windows内核编程》的作者陈铭霖、《Windows环境下32位汇编语言程序设计》的作者罗云彬、微软总部高级软件工程师Tiger Sun以及各软件安全论坛的朋友对本书提出宝贵的建议以及认可和肯定。

由于我的能力和水平的限制,书中难免会存在疏漏,欢迎读者批评指正。读者可以通过Windows中文网与我沟通。