1 Windows 编程基础
2 文字的编码
3 窗口 程序
4 消息循环
5 菜单和加速键
6 绘图
7 对话框
8 基本控件
一、 Windows 编程基础
1.1 控制台程序
不需要完善的Windows窗口,可以使用Dos窗口的方式显示
1.2 Win32窗口程序
包含窗口的程序,通过窗口和程序进行交互
1.3 Win32库程序
提供已有的代码供其他程序使用。
动态库: 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.0 - vc10.0
2.1.1 编译器 CL.EXE 将源代码编译成目标代码 生成OBJ文件
2.1.2 连接器 LINK.EXE 将OBJ文件和库函数链接 生成EXE
2.1.3资源编译器 RC.EXE 将资源脚本编译成可以链接的RES文件
2.2 头文件和库
2.2.1 头文件 windows.h包含了windows常用的定义等,其他,还包含了一些其他的头文件
windef.h - 定义了各种的数据类型
winbase.h 定义了kernal的相关函数
wingdi.h 定义了绘图和文字
winuser.h 窗口 控件等函数
winnt.h 提供UNICODE支持
2.2.2 库
kernel32.lib - t提供进程、线程、内存等等API函数支持
user32.lib - 窗口、界面等等
gdi32.lib - 绘图、文字等
2.3 Hello World 程序
2.3.1 入口函数
int WinMain(
HINSTANCE hInstance, //应用程序的句柄
HINSTANCE hPrevInstance, //该应用程序的前一个实例句柄
LPSTR pszCmdLine, //命令行参数
int nShowCmd) //窗口的显示方式
{
return 0;
}
2.4 编译环境的准备
在VC98的BIN目录下vcvars32.bat
2..5 编译 CL.EXE
2.6 链接 LINK.EXE