《programming windows》笔记1

     写在前面的话

 

我想在开始这本书的时候,需要对一些朋友做一个解释。很多人跟我说,一开始就读这些经典之作是不合适的,总有人跟我抱怨《the c programming Language》太难。《c++ primer》太厚等。需要一些基础等等。首先,我不知道这些所谓的基础是什么?上面的那些材料都是基础,就算完全掌握了这些也只是一点皮毛而已,我不知道还要基础到什么程度。另外,我绝对反对读像我们大学发的那样的所谓的基础教材,特别是c和c++范围的。(别的我尚无深刻体会,估计也好不到那去) 。那些书通常错误百出,给初学者留下非常糟糕的思考习惯,读了他们,要想深入学习不是变容易了,而是更难了。坏习惯一旦成了,就糟糕了,同样我们面前的这本《programming windows》也是windows程序设计方面的基础,当然完全搞清楚这本书。离windows编程专家水平也不会太远了,但不用担心基础问题(­原因下文中会提到),好了,这是个简单解释,也算我的学习思想。姑且作为本笔记的前言吧、

 

第一章

在开始进入一个领域的时候,我们经常需要回答几个几乎看起来必须回答的问题,这本书的第一章正是为了回答这些问题而存在的。下面是我对这些回答的理解。

为什么选择Windows API作为学习windows程序设计的开始?
 正如作者在一开始就提到的,c和API不是在windows下写程序的唯一方式,适适相反,这看起来几乎是最麻烦,最原始的方法,但是正因为它是最原始的方式,它才能提供给你最灵活的设计环境,掌握了它,在windows环境下,你几乎可以随心所欲了,武学中的“心法”大概就是此言。另外应该承认,笔者看过一段时间的mfc,尽管用起来没多大的难度,但每写一句都诚惶诚恐,不清楚自己写下的这些code到底是如何实现的,正如jjhou说的:“会用,但不知道其原理,一点都不高明。”那么想知道其原理,API是你的必经之路。

    需要怎么样的基础?

让我们先看看作者说了什么,会用windows 98?(会windows xp可以吗?。。。。。。)大概在开玩笑;会c语言?当然不能指望不懂c就去用api(我很怀疑不懂c的朋友会考虑这玩意儿);装32位的compiler?这个本人觉得未必就必须是VC++,别的compiler也行,我曾用dev c++编译本章末尾的code。运行的不错,个人认为只要你的编译器安装目录下有个叫windows.h的文件即可,当然要记住,必须是32的compiler(别装TC。)。我们可以看出来,对于我们来说几乎不需要什么基础,要的是信心、耐心及挑战的心。
     什么是DLL?

在学习API之前,我们必须先理解这个概念,而理解这个概念,我们就要知道link的时候发生了什么事?在写这篇文字之前,我曾以为link做的只是将已经编译好的各种文件装配成可执行文件而已,但这只是第一步而已,我们知道c库中有一些函数属于运行时刻函数,这些函数在win32的环境下,可以单独编译成执行代码,而后连接成可以执行文件(DLL文件或者exe文件),这些可执行文件没有进入点(比如maim函数),这意味着他只可被别的程序调用,这是所谓的dynamic linking library,所以必须明白它并不是编译器的直接结果,它也是link的产物,因此link最终可运行程序的第二步,是将这些DLL实现二次link,这是windows运行机制的核心,当然这里理解依然很次,朋友们可以查看有关资料,理解它对于学习API非常重要。

什么是API?它是如何被调用的?

c写过控制台程序的人都知道,写程序很大程度上就是library应用和设计,而无论是设计还是应用都必须以系统提供的系统调用为基础,API正是windows提供的系统调用函数(可以理解为c的一种运行时刻函数库)。他提供了所有windows应用程序的编程接口,从使用的角度而言他和c标准库函数完全相同。API提供了DLL的接口,这些函数的执行代码(machine code)却不在你的程序中,而是以DLL的形式存放于系统中(在win32的环境里,c的运行时刻函数库也是以DLL的方式连接的)。另外,还必须知道,windows API函数主要由kernel、user和GDI组成,因此不能说没有GUI的程序不是windows程序,图形界面是windows程序的一个部分而已,而且看了windows的历史就发现GUI程序也不是windows的独有的特点。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
内容简介   《MFC Windows程序设计(第2版)》是对其极为经典的第1版的全面更新,本书不仅扩展了已被认为是权威的关于Microsoft用于Windows API的功能强大的C++类库的阐述,还新增了有关COM、OLE和ActiveX的内容。本书的作者,Jeff Prosise,用其无与伦比的技巧向读者讲述了MFC程序设计中的基本概念和主要技术——再次阐释了在32位Windows平台上进行了快速的面向对象开发的完美方法。   本书涵盖了以下专题:   事件驱动程序设计和MPC的基础知识   文档/视图体系结构   位图、调色板和区域   多线程和线程同步   MFC与组件对象模型(COM)   ActiveX控件 作者简介   Jeff Prosise是一位作者、教员和讲师,他以Windows编程和教授别人如何进行Windows为生。作为一位在Windows程序设计、MFC和COM领域世界知名的权威,他还是《PC Magazinge》和《Microsoft Systems Journal》杂志的组稿编辑。 目录   序言   第Ⅰ部分 Windows和MFC基础   第1章 Hello,MFC   第2章 在窗口中绘图   第3章 鼠标和键盘   第4章 菜单   第5章 MFC集合数   第6章 文件I/O和串行化   第7章 控件   第8章 对话框和属性表   第Ⅱ部分 文档/视图体系结构   第9章 文档、视图和单文档界面   第10章 滚动视图、HTML视图以及其他视图类型   第11章 多文档和多视图   第12章 工具栏、状态栏和组合栏   第13章 打印和打印预览   第Ⅲ部分 高级篇   第14章 计时器和空闲处理   第15章 位图、调色板以及区域   第16章 公用控件   第17章 线程和线程同步化   第Ⅳ部分 COM,OLE和ActiveX   第18章 MFC和组件对象模型   第19章 剪贴板和OLE拖放   第20章 Automation   第21章 ActiveX控件

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值