您的位置:首页 > 其它

Win32程序开发流程

2011-07-23 14:44 232 查看
Windows程序分为“程序代码”和”UI资源”两大部分,两部分最后 以RC编译器整合为一个完整的EXE档案。所谓UI资源是指功能菜单、对
话框外貌、程序图标、光标形状等等东西,实际内容借助各种工具产生
,并以各种扩展名的文件存在,如.ico、.bmp、、.cur等等。程序员必
须在一个所谓的资源描述文档(.rc)中描述它们。RC编译器读取RC文
件的描述后将所有UI资源文件集中制作出一个.RES文件,再于程序代码
结合在一起,这才是一个完整的Windows可执行文件。
--------------------------------------------------------------
需要什么函数库(.LIB)
Windows支持动态链接,应用程序所调用的Windows API函数是在
“执行时期”才链接上的。那么,“链接时期”所需要的动态链接函数
库有哪些?做什么用?
Windows程序调用的函数可分为C Runtimes以及Windows API两大部
分。以下是命名规则和使用时机:
LIBC.LIB——这是C Runtime函数库的静态链接版本。
MSVCRT.LIB——这是C Runtime函数库动态链接版本的import函数
库。如果链接这一函数库,程序执行时必须有MSVCRT40.DLL在场。
另一组函数,Windows API,由操作系统本身(主要是Windows三大
模块GDI32.DLL和USER32.DLL和KERNEL32.DLL)提供。
Windows发展至今,逐渐加上的一些新的API函数并不放在GDI和
USER和KERNEL三大模块中,而是放在诸如COMMDLG.DLL、TOOLHELP.DLL
之中。如果要使用这些APIs,连接时还得加上这些DLLs所对应的import
函数库,诸如COMDLG32.LIB和TH32.LIB.
-------------------------------------------------------------
需要什么头文件(.H)

所有Windows程序都必须载入WINDOWS.H。早期较大,现已切割为各
个较小的文件,但还以WINDOWS.Hz总括之。除非十分清楚什么API操作
需要什么头文件,否则为求便利,单单一个WINDOWS.H也就是了。
不过, WINDOWS.H 之照顾三大模块所提供的API函数,如果用到其
它system DLLs,就要载入对应的头文件,例如COMMDLG.H或MAPI.H 或
TAPI.H等等。
-------------------------------------------------------------
以消息为基础,以事件驱动之(message based, event driven)
Windows 程序的进行系依靠外部发生的事件来驱动。换句话说,程
序不断等待(利用一个while循环),等待任何可能的输入,然后做判断
,然后再做适当的处理。上述的“输入”是由操作系统捕捉到以后,以
消息形式(一种数据结构)进入程序之中。操作系统如何捕捉外围设备(
如键盘和鼠标)所发生的事件呢? USER模块掌管着各个外围的驱动程
序,他们各有侦测循环。
如果对应用程序获得的“输入”进行分类,可以分为由硬件装置所
产生的消息,放在系统队列(system queue)中,以及由Windows系统
或其它Windows程序传送过来的消息,放在程序队列(application
queue)中。以应用程序的眼光来看,消息就是消息,来自哪里或放在哪
里其实并没有太大区别,反正程序调用GetMessage API就取得一个消息
,程序的生命靠它来推动。
可想而知,每一个Windows程序都应该有一个如下的循环:
MSG msg;
while(GetMessage(&msg,NULL,NULL,NULL)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//以上出现的函数都是Windows API函数
消息,也就是上面出现的MSG结构,其实是Windows内设的一种数据
格式;
/*Queued message structure*/
typedef struct tagMSG
{
HWND hwnd;
UINT message;//WM_XXX,例如WM_MOUSEMOVE,WM_SIZE...
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
}MSG;
接受并处理消息的主角就是窗口,每一个窗口都应该有一个函数负
责处理消息,程序员必须负责设计这个所谓的“窗口函数”。如果窗口
获得一个消息,则这个窗口函数必须判断消息的类别,决定处理方式。

以上就是Windows 程序设计最重要的的观念,至于窗口的产生与显示,
十分简单,有专门的API函数负责。稍后我们就会看到Windows程序如何
把这消息的取得、分派、处理操作表现出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: