MFC深入浅出-Win32程序开发流程

本文介绍了Win32程序的开发流程,包括程序代码与UI资源的整合过程,以及所需的函数库和头文件等内容。

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

 
Win32程序开发流程
Windows程序分为“程序代码”和“UI(User Interface用户)资源”两大部分,两部分最后以RC编译器整合为一个完整的EXE挡案。所谓UI资源是指功能菜单,对话框外貌,程序图标,光标形状等等东西。这些UI资源的实际内容(二进制代码)是借助各种工具产生,并以各种扩展名的文件存在的,如.ico,.bmp,.cur等等。程序员必须在一个所谓的资源描述文档(.rc)中描述它们。RC编译器(RC.EXE)读取RC文件的描述后将所有UI资源文件集中制作一个.RES文件,再与程序代码结合在一起,再与代码结合在一起,这才是一个完整的Windows可执行文件。
 
需要什么函数库(.lib)
 Windows支持动态链接,即应用程序所调用的Windows API函数是在“执行期间”才链接上。那么,“联结时期”所需要的函数库有哪些?做什么用?
 Windows程序调用的函数可分为C Runtimes以及Windows API两大部分。早期的C Runtimes并不支持动态链接。但VC++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三大模块中,而是放在诸如COMMONDLG.DLL,TOOLOHELP.DLL之中。如果要使用这些APIs,链接时还得加上这些DLLs所对应的import函数库。诸如COMMON32.LIB和TH32.LIB.
 
需要什么头文件(.H)
 所有Windows程序都必须载入WINDOWS.H.早期这是一个巨大的头文件,大约有5000行左右,VC++4.0已把它切割为各个较小的文件,但还以WINDOWS.H总扩之.除非十分清楚什么API小、操作需要什么头文件,否则以求便利,单单一个WINDOWS.H也就可以了.
 不过,WINDOWS.H只照顾三大模块所提供的API函数,若要使用其他system DLLs,例如COMMDLG.DLL或MAP.DLL或TAPI.DLL等等,就等载入对应的头文件.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值