Windows编程入门:从控制台到窗口程序

需积分: 13 4 下载量 94 浏览量 更新于2024-09-13 收藏 77KB TXT 举报
"达内2013年win32编程课堂笔记" Win32编程是Windows操作系统平台上进行底层系统级编程的一种技术,主要用于创建桌面应用程序。这套课堂笔记主要涵盖了Win32 API的基础知识,包括编译过程、程序类型、入口函数、文件形式、执行方式以及VC(Visual C++)的编译工具的使用。 1. **编译与链接流程** - 编译阶段:使用`cl.exe`编译器将`.c`或`.cpp`源文件转化为汇编语言的中间文件`.obj`。 - 链接阶段:`link.exe`连接器将`.obj`文件与其他库(如`.lib`或`.dll`)链接,生成最终的可执行文件`.exe`、动态链接库`.dll`或静态库`.lib`。 2. **程序类型及其特性** - **控制台程序**:以`main`函数作为入口,通常在DOS窗口中运行,生成`.exe`文件。 - **窗口程序**:使用`WinMain`函数作为入口,有自己的窗口,同样生成`.exe`文件。 - **动态库程序**(DLL):使用`DllMain`函数作为入口,存在于`.dll`文件中,不能直接执行,需由其他程序调用。 - **静态库程序**:没有入口函数,其代码会嵌入到调用它的`.exe`或`.dll`中,以`.lib`文件形式存在。 3. **VC的编译工具使用** - `cl.exe`可以指定选项,如`/c`表示只编译不链接,`/Tc`表示将文件视为C源文件,`/Tp`表示视为C++源文件。 - 一个简单的编译链接示例:`cl.exe /c hello.c`,然后`link.exe hello.obj user32.lib`,生成`hello.exe`。 4. **Windows库和头文件** - **Windows库**:如`kernel32.dll`(核心API,如进程和线程管理)、`user32.dll`(窗口和消息API)、`gdi32.dll`(图形设备接口API)等。 - **头文件**:`windows.h`包含了所有Windows API的头文件,`windef.h`定义了Windows的数据类型,`winbase.h`、`wingdi.h`、`winuser.h`分别对应kernel32、gdi32和user32的API,`winnt.h`则支持Unicode字符集。 5. **编写窗口程序的步骤** - **1.定义WinMain函数**:这是窗口程序的入口,负责程序初始化和消息循环。 - **2.定义窗口处理函数**:处理来自系统的消息,如鼠标点击、键盘输入等。 - **3.注册窗口类**:定义窗口类的属性,如窗口样式、背景色、图标等,并在Windows系统中注册。 - **4.创建窗口**:基于注册的窗口类创建实际的窗口实例。 - **5.消息循环**:不断地接收和处理系统消息,直到程序结束。 6. **Win32 API**: - Win32 API是一系列用于开发Windows应用程序的函数,提供对操作系统功能的直接访问,如窗口管理、事件处理、内存管理、进程和线程操作等。 通过学习这些笔记,开发者能够掌握创建Windows桌面应用程序的基本技能,理解编译和链接过程,熟悉Windows库和头文件的使用,以及如何编写和管理窗口程序。这对于深入理解和开发Windows系统级别的应用至关重要。