《深入浅出MFC》学习笔记之Win32程序设计原理(一)

一、Win32程序开发流程:



win32程序分为程序代码和UI资源两大部分,程序代码由C编译器编译成.obj目标文件,UI资源(.rc文件)由RC编译器编译成.res文件,最后由连接器将.obj文件和.res文件以及所需的函数库连接成最终的EXE文件。

Windows程序支持动态联结,即应用程序所调用的Windows API函数是在程序运行期间才联结上的。联结时期所需要的函数库即动态链接库,.dll,.exe,.fon,.mod,.drv,.ocx都是所谓的动态链接库。

 Windows程序调用的函数分为C Runtimes以及WIndows API两大部分。MSVCRT.DLL是C Runtime函数动态链接库。Windows三大模块GDI32.DLL,USER32.DLL,     KERNEL32.DLL提供一部分API。

 动态联结在程序执行时才联结上,但是在程序联结时期,联结器仍然需要为应用程序准备一些适当的信息,才能够在执行时期顺利跳到DLL执行。这些信息即所谓的       import函数库(以.LIB结尾的文件),32位Windows的三大模块所对应的import函数分别为GDI32.LIB,USER32.LIB,KERNEL32.LIB。

二、以消息为基础,事件驱动。

WIndows程序的进行依靠外部发生的事件来驱动,即程序不断等待(利用一个while回路),等待任何可能的输入,然后做判断,然后再做相应的处理。上述的输入是由操作系统捕捉到后,一消息的形式进入程序之中。操作系统通过USER模块捕捉外围设备所发生的事件 。消息分为两类,由硬件装置产生的消息(鼠标键盘等),存放在系统队列(system queue)中,以及由windows系统或者其他windows程序传送过来的消息,存放在程序队列(application queue)中,但应用程序并不知道传送过来的消息是哪一种(实际上,它无需知道)。

接受并处理消息的主角是窗口,没一个窗口都应该有一个函数负责处理消息,程序员必须负责设计这个所谓的窗口函数(window procedure)。

三、一个windows应用程序基本结构



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值