windows 编程的学习次序

本文提供了一条学习Windows编程的有效路径,建议从C/C++语言基础开始,逐步掌握Windows API、核心编程原理,再深入到MFC等框架。此外,还介绍了学习过程中所需的书籍资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经常有初学者询问如何学习Windows编程?

很多人从MFC开始学习,结果常常是一头雾水,知难而退;也有人毅力坚强,熬过了MFC的阵痛期,最后却是知其然而不知其所以然,并且思维被限制在MFC的框架之中,遇到稍微有点规模的程序就无从下手了。

以我个人的这些年的Windows开发经历,我建议Windows上的学习路线如下:
首先当然是语言的学习,比如C或C++(STL),它是平台无关的
然后可以从《Windows程序设计》(by  Charles Petzold )入门,从最原始的Windows API开始学习
接下来可以学习《Windows核心编程》(by  Jeffrey Richter ), 它会让你比较深刻的理解Windows的前台和后台机制
学完上面2本书,对Windows系统已经比较熟悉了,再要深入的话可以学下《Windows 图形编程》(by 袁锋)。

至此,已经可以用API的方式开发大部分Windows应用程序了,
接下来可以学一些常用库,比如MFC,WTL,ATL等,此时学习MFC和一开始就学习MFC已是截然不同的感觉,彼时痛苦难熬,此时会心一笑。
其他就是根据项目需要,专业知识的学习,比如COM技术,网络,D3D等。
===========================

c++ 的 stl windows sdk mfc wtl 这几个部分应该怎么学习啊 。除了上面4个还有什么要学习的 谢谢指导哦
 
 
1.打牢C++的语言基础。
2.STL是C++的标准库,基于模板技术,结合泛型设计思想,是一套学习C++本身的很好的库,但需要很好的C++语言功底。在一般的C++书籍中,都会有STL的章节,不过一般只是讲如何应用它。在学习数据结构的时候,结合STL来学习容器和算法,再好不过,推荐书籍《STL源码剖析》(侯捷),如果你觉得需要掌握更深层次的模版技术并加强对模版的正确认识和了解,请看《C++ Templates中文版》。
3.对于windows sdk,你可以看《windows 程序设计》(Charles Petzold),里面的例子全是用C写就的,有了C/C++的基础,这些例子都很简单。跟着书本循序渐进,你会获益良多。接下来,你可以看《windows核心编程》(Jeffrey Richter),里面有很多高级技术,例子也用C++写成。读完这两本书,你对windows环境下的编程就有了清晰的了解。
4.对于MFC,有了第三部的积累,小菜一碟。前提是第三部分你要掌握的非常良好。如果你初读《MFC深入浅出》(侯捷),你可能会觉得有所困难,不过不要泄气,硬着头皮也要学完前几章,待到你把前几章弄通后,哈,后面的就很容易学下去了,而且充满乐趣(对我而言是如此的)!
5.WTL,一个非常棒的Frame。你学好了模板,再结合你对MFC的了解,学习WTL再简单不过了。WTL最好的一个地方在于,它是基于模版和多重继承实现的。由于模版的特性,WTL所有的源代码都在头文件中,这些源码正是学习WTL的最好方法。到了这个阶段,你会觉得,看WTL源代码是一件颇为享受的事情,因为你得以一窥它是如何实现与MFC同名的一些函数的。自然,这里有一本书(其实不能算书,是Code Project上的一系列文章的集合),叫做《WTL for MFC programmer》,有中文版。 
关于其它,对于windows的高级技术COM/COM+,已经不是现今的主流技术了,《COM本质论》的作者也说在.net大行其道的今天,COM已经没落了,但现在windows的很多关键部分仍在应用COM,谷歌地球的自定义编程也是COM方面的内容。简单来说,COM是基于二进制防火墙的跨平台的技术,内容繁杂,你可以先看《COM技术内幕》,再看《COM本质论》,如果你感兴趣的话。我当时光看COM中的聚合,就搞得头大。
学完COM,你能干什么呢?还不到时候。接下来就到ATL(活动模板库)了,它是基于COM的框架。具体的内容我也没怎么学,我倒是买了本《ATL技术内幕》,留待以后学习吧。
抛开windows,但看C++本身,有很多有趣的东西。我首推《C++模板元编程》,这是一本考验耐性和智力的书。同时你必然就接触到了Boost库,这个库的名气很大,我就不赘述了。如果你有兴趣,可以看看脚本语言与C++的混合编程(仅是个人推荐,看你兴趣),其中之一就是Boost::Python和C++的混合编程(当然,Python是一种独立的脚本语言,Boost::Python只是用于C++编程的)。
还有什么呢,还是模板,依旧是泛型编程。先提一个项目,“大芒果”,魔兽世界的网络变“单机”的服务器。里面应用到了很多这本书介绍的技术:《C++设计新思维-泛型编程与设计模式之应用》。当然,对于这么大一个项目,这只是冰山一角。
还有吗?当然,数之不尽……

============================


提问者:  liyed32  | 浏览次数:2968次
我本来想先看看 windows程序设计的 可是  既然MFC 把他给封装起来了  我是不是先看深入浅出MFC ?
另外看深入浅出MFC  需要什么C++ 基础  例如RTTI 和 虚函数 继承?  谁给讲一下  学习的流程! 谢谢了!
 
精彩回答
检举| 2011-06-16 20:21
1.c++语法要掌握.
2.windows程序设计是必需的,特别是象单文档程序,如果不了解消息处理细节,你直接上mfc的封装类,光一个CFrameWnd就可以让你深陷其中,云里雾里.
一些简单内容,直接跳过去就是了.
3.mfc学习,一本是李久近的,还是有一个国外的<深入解析mfc>.而侯俊杰的就省省吧.

1.c++语法掌握,主要是一本书<深度探索c++对象模型>.看完这本,神马语法都是浮云.
rtti,为类维护一个static类,由于static对于类的多个实例来说仍然只有一个,这样就可以通过static记录类继承信息来判断父子关系.c++编译器自动实现,只要关心相应的函数就行了.
mfc,刚好就是明显提供了这种类似的实现,主要用于消息映射表遍历.

象com类,它是用128位数,也就是uuid用来表达一个类名称,然后通过字符串比较,来判断到底要返回嘛类,这个体会一下.

   
=================================
1.c++ ,先确定你已看过《深度探索C++对象模型》,否则你一两年内仍然停留原来的水平。
2.<windows程序设计>必看的,弄懂win32下的编程框架,理解消息机制,务必把多文档那个章节看完。其它的,不用看了。就算要看,也是当手册看,或是用到时再看。
3.<windows核心编程>这一本看你的理解力,再快也要几个月吧。

4.这时可以学mfc了。
两个方向:
研究源码(以后应用时会得心应手一些,bug调试能力会比较强,很快能知道问题出在哪里),或是直接上手应用(吃力不讨好,这个只能是经验,经验)。具体看你时间而定。
追问
深度探索C++对象模型  真有那么重要? 我是想API和MFC一起学的,那样好不好?现在看MFC还是看的点懂,不过稀里糊涂的
回答
深度探索C++对象模型 其实就是了解一个内存模型,这是必需的。早看早受益,否则以后接触到一些类设计,如果不能理解内存模型,基本上是体会不到这样设计的妙处的。

windows核心编程 可以不看,直接跳到mfc的学习上。
但1,2两点理解之前,别碰mfc, 否则除了浪费时间,还是浪费时间。


因为本人帐户只能上传15M的文件,电子书文件有130M左右大小,只能分割8个分卷分别 上传。进入我帐户的空间就能看到8个分卷的全部下载地址。 http://yx6071.download.youkuaiyun.com/ 或者在搜索栏中搜索也能找到全部8个分卷。 看雪论坛主力成员张静盛所编著。为高清晰完整版PDF电子书,是学习Windows编程很好的 书籍。作者简介:张静盛,目前在盛大网络从事技术研发工作。自2005至今在看雪软件安 全论坛担任“Win32/Win64编程”版版主(网名:北极星2003)。曾获第31届ACM/ICPC 国际大学生程序设计竞赛亚洲赛区(上海)银奖。他追求专业技术的精纯,常为工作、为兴 趣废寝忘食。 本书设计了大量的实例演示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章,模块注入与函数挂接技术:介绍模块注入及函数挂接技术及其防御。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值