Windows编程入门:从控制台到窗口程序
需积分: 13 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系统级别的应用至关重要。
2011-01-07 上传
2011-12-26 上传
点击了解资源详情
2014-06-12 上传
2011-07-20 上传
2013-01-03 上传
2009-07-14 上传
2010-02-06 上传
2012-03-01 上传
hellolittlepan
- 粉丝: 18
- 资源: 43
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库