Win32的编译工具
编译器CL.EXE ->将.cpp/.c源代码编译成目标代码.obj
链接器LINK.EXE 将目标代码.库连接最终生成最终文件资源编译器rc.exe文件(.rc)将资源编译,最终通过链接器存入最终文件
.NMAKE
MAKEFILE的 一个解释执行的工具,根据Makefile的文件中的定义,编译和链接程序,最终生成文件.
.Makefile(.mak)
定义编译和链接等操作的脚本文件(把项目的处理命令写入),一般对整个项目进行处理
宽字节字符
wchar_t每个字符占2个字节 char每个字符占一个字节或者2个字节
Wchar_t实际上是unsigned short类型,定义时,需要增加”L”,
Gcc cl 这两个编译器都是单向编译器
BOOL WriteConsole(
);
窗口类包含了窗口的各种参数信息的一个数据结构,每个窗口都具有窗口类,基于窗口类创建窗口.每个窗口类都具有一个名称,使用前必须注册到系统
窗口类的分类
系统窗口类
系统已经定义好的窗口类,所有应用程序都可以直接使用.
应用程序全局窗口类
由用户自己定义,当前应用程序所有模块都可以使用
应用程序局部窗口类
有用户自己定义,当前应用程序中本模块可以使用
全局窗口类会增加程序的冗余.
系统窗口类的注册:不需要注册,直接使用窗口类即可,系统已经定义好相应名称.
应用程序全局窗口类的注册
.RegisterClass/RegisterClassEx
ATOM RegisterClass(CONST WNDCLASS *WndClass);//窗口类的数据
注册成功后,返回一个数字标识
ATOM RegisterClassEx(CONST WNDCLASSEX *lpwcx);//窗口类的数据
应用程序全局窗口类的注册,需要在窗口类的风格中增加CS_GLOBALCLASS,例如:WNDCLASSEX wce = {0};
wce.style = ...|CS_GLOBALCLASS;
应用程序局部窗口类
在注册窗口类时,不添加
CS_GLOBALCLASS风格
窗口类的查找过程
1.系统根据传入的窗口类名称,在应用程序局部窗口类中查找,结果找到执行2,如果未找到执行3.
2.比较局部窗口类与创建窗口时传入的HINSTANCE变量,如果发现相等,创建和注册的窗口类在同一模块,创建窗口返回.如果不相等,继续执行3
3.在应用程序全局窗口类,如果找到,执行4,如果未找到执行5
4.使用找到的窗口类消息,创建窗口返回
在系统窗口类中查找,如果找到创建窗口返回,否则创建窗口失败