Windows操作系统是一种广泛认可的操作系统,凭借庞大的用户群体和良好的用户体验,一直占据着操作系统领域的主导地位。本书以Windows下系统程序设计技术为主,应用软件开发为辅,向读者展示Windows的系统机制。.
本书内容安排
本书设计了大量的实例演示Windows应用程序开发过程中的相关技术,分为3篇。
软件设计基础篇
·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。
·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。
·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的使用方法。
·第4章,文档与视图:介绍文档与视图的基本原理。
·第5章,GDI绘图技术:介绍GDI绘图技术的基本的GDI对象。
·第6章,键盘与鼠标消息:介绍键盘、鼠标消息的处理与模拟。
软件设计综合应用篇
第7章,网络通信基础:介绍网络模型、协议以及套接字编程和LSP的实现。
第8章,密码学算法:介绍常见的密码学算法及其实现。
第9章,多媒体技术:介绍几种多媒体控件的使用方式和屏幕截图、录像的实现。
第10章,数据库技术:介绍MFC ODBC和DAO基本使用方法。
第11章,综合实例开发:实现多个具有趣味性的实例。
Windows系统程序设计篇
第12章,进程与线程:介绍进程与线程的原理及其基本应用。
第13章,内存管理:介绍虚拟内存与内存映射两种内存管理机制。
第14章,进程间通信:介绍共享内存、管道等进程间通信方式的原理与实现方法。..
.第15章,线程同步:介绍多种线程同步技术,包括使用内核对象实现线程同步。
第16章,动态链接库:介绍DLL的基本原理,包括TLS机制。
第17章,结构化异常处理:介绍结构化异常处理机制,及其在VC++环境下的特性。
第18章,可执行文件格式:介绍PE文件格式及其基本应用。
第19章,模块注入与函数挂接技术:介绍模块注入及函数挂接技术及其防御。
关于写作本书
编写本书的主要目的是知识总结与经验分享。
对于我来说,知识总结在学习的过程中是必不可少的,就像操作系统需要“磁盘整理”一样。当很长一段时间不对系统进行“磁盘整理”操作,系统性能就会下降。经常总结所学知识,从总体把握体系结构,让自己能够长期保持良好地学习状态。本书实例的一部分来自于学习过程,这里只是按照知识体系把这些实例串联起来。
学习过程重要,知识的交流与分享也同样重要。我曾经在看雪软件安全论坛编程版块建立“Windows系统程序设计”专题,与大家分享学习心得,也有一部分朋友参与到这个专题中。我感觉收获比较大,但意犹未尽,于是就产生编写本书的想法。
现在计算机专业的绝大部分学生就业压力越来越大,归根到底就是不被社会所承认。有些人认为学校所传授的知识与实际应用不接轨,有些人认为许多非计算机专业人员进入这个领域导致竞争激烈。而在我看来,作为计算机专业学生应该尽量寻找主观原因。对于计算机专业学生,在大学4年的自由时代,如何有效利用计算机资源是问题的关键所在。摆在眼前有两个选择:游戏与技术。每个人都能从不同游戏中获取乐趣,但对于技术呢?谁来展现技术的魅力?谁来引导学生对技术的兴趣?这也是编写本书的一个重要原因。希望本书能够引发学生朋友对计算机技术的兴趣,能够使读者在学习技术的过程中获得乐趣,能够从学校走出更多的计算机专业人才。
信息反馈与交流
由于水平有限与时间紧迫,书中难免有所错漏。如果有关于本书的任何问题,欢迎发送电子邮件到zhangjingsheng_nbu@hotmail.com。如果希望交流本书内容,可以发送电子邮件,也可以到看雪软件安全论坛http://bbs.pediy.com)的编程版块进行交流。
致谢
感谢李纲老师,让我明白“学习贵在精而不在多”,使我在程序设计与算法领域打下坚实基础。
感谢徐海峡、郭忠翔,让我明白什么是“能够解决问题的人”,坚定地朝自己的方向前进。
感谢段钢(kanxue),感谢看雪软件安全论坛,论坛是我兴趣的源泉,成长的起点。
感谢213实验室的良师益友,一起学习,一起娱乐,一起成长,让我的大学生活丰富多彩。
感谢我的家人和朋友,你们的支持是对我最大的鼓励。...