- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
侯捷深入浅出MFC---第1
Powered By Gisun
第1章 Win32 基本程序观念
程序设计领域里,每一个人都想飞。
但是,还没学会走之前,连跑都别想!
虽然这是一本深入讲解MFC 程序设计的书,我仍坚持要安排这第一章,介绍 Win32 的 基本程序设计
原理(也就是所谓的SDK 程序设计原理)。从来不曾学习过在「事件驱动(event driven)系统」中撰写
「以消息为基础(message based)之应用程序」者,能否一步跨入MFC 领域,直接以application
framework 开发 Windows 程序,我一直抱持怀疑的态度。虽然有了MFC(或任何其它的application
framework),你可以继承一整组类,从而快速得到一个颇具规模的程序,但是 Windows 程序的运作 本
质(Message Based,Event Driven)从来不曾也不会改变。如果你不能了解其髓,空有 其皮其肉或其
骨,是不可能有所精进的,即使能够操控 wizard,充其量却也只是个 puppet,对于手上的程序代码,没
有自主权。
我认为学习MFC之前,必要的基础是,对于Windows程序的事件驱动特性的了解(包括消息的产生、获
得、分派、判断、处理),以及对 C++ 多态(polymorphism)的精确体会。本章所提出的,是我对第一
项必要基础的探讨,你可以从中获得关于 Windows 程序的诞生与死亡,以及多任务环境下程序之间共存
的观念。至于第二项基础,将由第二章为你夯实。
图1-1 一个32位Windows SDK程序的开发流程
需要什么函数库(.LIB)
众所周知Windows 支持动态链接。换句话说,应用程序所调用的Windows API 函数是在「运行时」才
链接上的。那么,「链接时期」所需的函数库做什么用?有哪些?
并不是延伸文件名为 .dll 者才是动态链接函数库(DLL,Dynamic Link Library),事实
上 .exe、.dll、.fon、.mod、.drv、.ocx 都是所谓的动态链接函数库。
Windows 程序调用的函数可分为 C Runtimes 以及 Windows API 两大部分。早期的 C Runtimes
并 不 支 持 动 态 链 接,但 Visual C++ 4.0 之 后 已 支 持,并 且 在 32 位 操 作 系 统 中 已 不 再 有
small/medium/large 等内存模式之分。以下是它们的命名规则与使用时机 :
LIBC.LIB - 这是C Runtime 函数库的静态链接版本。
MSVCRT.LIB - 这是C Runtime 函数库动态链接版本(MSVCRT40.DLL)的 import 函数库。如果
链接此一函数库,你的程序执行时必须有 MSVCRT40.DLL 在场。
另一组函数,Windows API,由操作系统本身(主要是 Windows 三大模块 GDI32.DLL 和 USER32.DLL
和 KERNEL32.DLL)提供(注)。虽说动态链接是在运行时才发生「链接」事实,但在链接时期,链接器
仍需先为调用者(应用程序本身)准备一些适当的资讯,才能够在运行时顺利 「跳」到 DLL 执行。如果
该 API 所属之函数库尚未加载,系统也才因此知道要先行加载该函数库。这些适当的信息放在所谓的
「import 函数库」中。32 位 Windows 的三大模块所对应的 import 函数库分别为 GDI32.LIB 和
USER32.LIB 和 KERNEL32.LIB。
Windows 发展至今,逐渐加上的一些新的 API 函数(例如 Common Dialog、ToolHelp) 并不放在
GDI和USER 和KERNEL三大模块中,而是放在诸如COMMDLG.DLL、 TOOLHELP.DLL之中。如果要使用这些
APIs,链接时还得加上这些DLLs 所对应的import函数库,诸如COMDLG32.LIB 和 TH32.LIB。
很快地,在稍后的范例程序“Generic” 的makefile中,你就可以清楚看到链接时期所需的各式各样
函数库(以及各种链接器选项)。
需要什么头文件(.H)
所有Wi
您可能关注的文档
- windows XP 各个文件夹详细介绍.pdf
- 线程注入基本步骤_远程注入DLL.pdf
- PowerBuilder编程Win32API函数调用.pdf
- Linux系统基础知识.pdf
- Visual C中的MFC的常用消息总结.pdf
- 基于WindowsNT主机入侵检测系统的网络连接和注册表监控.pdf
- FPGA软件的安装说明.pdf
- AjaxControlToolkit的安装与使用详解(排版美观).pdf
- 基于Windows+xp系统的Moodle平台的搭建及优化.pdf
- HP_OEM_XP_SP3系统制作教程.pdf
- DB44_T 2611-2025 城市排水管网有毒有害气体监测与风险分级管理技术标准.pdf
- DB44_T 2612-2025 竞赛类科普活动策划与实施服务规范.pdf
- DB43_T 2947-2024 烟草种子质量控制规程.pdf
- DB37_T 4836-2025 煤矿风量实时监测技术要求.pdf
- 叉车防撞系统,全球前22强生产商排名及市场份额(by QYResearch).docx
- 超滤膜,全球前18强生产商排名及市场份额(by QYResearch).docx
- DB62T 4172-2020 玉米品种 酒623规范.pdf
- DB62T 4160-2020 在用真空绝热深冷压力容器综合性能在线检测方法.pdf
- DB62T 4164-2020 辣椒品种 酒椒1号.pdf
- DB62T 4133-2020 公路隧道地质超前预报机械能无损探测技术规程.pdf
文档评论(0)