Win32 Windows编程
1、Windows编程基础
2、Windows文字的编码
3、窗口程序
4、窗口消息
5、菜单和加速键
6、绘图
7、对话框
8、基本控件
...
一 Windows编程基础
1、Win32应用程序的基本类型
1.1控制台程序
不需要完善的Windows窗口,可以使用DOS窗口的方式显示。
1.2Win32窗口程序
包含窗口的程序。可以通过窗口与程序进行交互。
1.3Win32库程序
提供已有的代码,供其他程序使用。
动态库:DLL 是在执行的时候可以加载的程序。
静态库:LIB 是在编译链接时使用的程序。
1.4对比
1.4.1程序的入口函数不同
控制台:main
Win32窗口程序:WinMain
动态库DLL:DllMain
静态库LIB:无
1.4.2编译链接后存在的形式不同
控制台和Win32窗口程序:EXE文件
动态库DLL:DLL文件,无法执行
静态库LIB:LIB文件,无法执行
1.4.3执行结果不同
控制台:使用DOS窗口,自己没有窗口
Win32窗口程序:会产生自己的窗口,可以将结果输出或者从窗口接受输入。
动态库DLL:提供可以执行的代码,当EXE等程序执行时,可以使用这些代码。
执行时,该库必须在指定的路径。
静态库LIB:自己无法执行,提供给程序在编译链接时使用,将库中的代码嵌入到程序当中。
执行时,不需要该库存在。
二 Win32窗口程序和编译环境
2.1开发和编译环境
VC1.5 - VC6.0(2008) - VC10.0(2010)
2.1.1编译器 CL.EXE
将源代码编译目标代码.OBJ文件
2.1.2链接器 LINK.EXE
将OBJ文件和库函数链接,生成EXE。
2.1.3资源编译器 rc.exe
将资源脚本编译成可以链接的文件(RES)。
#include <Windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR pszCmdLine, int nShowCmd) { MessageBox(NULL,"Hello World", "FirstWin32", MB_OK); return 0; }
2.2头文件和库
2.2.1头文件 Windows.h包含了windows常用的定义等,
还包含了一些其他的头文件:
windef.h - 定义了各种的数据类型
winbase.h - 定义了kernel的相关函数
wingdi.h - 定义了绘图和文字
winuser.h - 定义窗口/控件等函数
winnt.h - 提供Unicode支持
2.2.2 库
kernel.lib - 提供进程/线程/内存等等API函数支持
user32.lib - 包括窗口/界面等等
gdi32.lib - 提供绘图/文字等
2.3Hello World程序
2.3.1入口函数
int WINAPI WinMain(
HINSTANCE hInstance, //应用程序的句柄
HINSTANCE hPrevInstance,//该应用程序的前一个实例句柄
LPSTR pszCmdLine, //命令行参数
int nShowCmd) //窗口的显示方式
L - long
P - pointer
C - const
STR - 字符串
T - TCHAR
2.3.2 MessageBox
2.4编译环境的准备
在VC的BIN目录下VCVARS32.BAT
2.5编译
2.6链接