Windows 编程基础:动态链接库
专栏导航上一篇第1章[Win32 章节]Windows 简史回到目录下一篇第1章 第一个 Win32 程序头文件本节前言对于本节所讲解的知识有可能你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点请你自行查阅。我呢也会提到一部分的参考课节。但是呢你不应该依赖于我的主动提及。最好呢你自己能够多去了解和查看本专栏目录。本节我们讲解的是 Windows 的动态链接库。这可以说是一个很重要的基础知识但也可能是一个你在初次接触的时候会觉得非常无聊的基础知识。本节我基本上还是在抄录佩措尔德的教材。一. 动态链接库Windows 工作原理的中心思想就是 “动态链接” 的概念。Windows 自身带有一大套函数应用程序就是通过调用这些函数来实现它的用户界面和在屏幕上显示文本与图形的。这些函数都是在动态链接库里实现的。这些文件的名称都带有后缀 .DLL 或者 .EXE 。早期的 Windows 系统大部分只是实现了三个动态链接库。它们分别代表了 Windows 的三个主要的子系统内核用户和 GDI 。内核英文为 kernel 。在 32 位 Windows 时代关于内核模块的动态链接库主要是在 KERNEL32.DLL 中实现。内核模块主要用来负责操作系统的传统工作包含内存管理、文件输入/输出以及任务管理呢如果以后我们有机会向大家讲解 Linux 内核的话那么大家也是会接触到内存管理、文件输入/输出和任务管理的。用户英文为 user 。在 32 位 Windows 时代关于用户模块的动态链接库主要是在 USER32.DLL 里面来实现。用户模块它负责所有的窗口管理包括消息、菜单、光标、图标、计时器以及其他与控制窗口显示相关的一些功能。GDI展开来是 Graphics Device Interface中文含义是图形设备接口。在 32 位 Windows 时代关于 GDI 模块的动态链接库主要是在 GDI32.DLL 里面来实现。GDI 模块主要负责在显示器或打印机上显示文本和图形它提供图形设备接口管理用户界面和图形绘制包括 Windows 元文件、位图、设备环境和字体等。当 Windows 程序运行时它通过一个叫做 “动态链接” 的进程与 Windows 接口。每个 Windows 的 EXE 文件包含它所要用的各个动态链接库以及库中的函数引用地址。当一个 Windows 程序被装入内存之后程序中的函数调用都被解析成 DLL 函数入口的指针同时这些被调用的函数也被装入内存如果内存中还没有的话。当链接 Windows 程序一生成执行文件时一定得链接你的编程环境所提供的特殊的 “导入库”import library。这些导入库包含所有 Windows 函数调用要碰到的动态链接库的名字及引用信息链接程序利用这些信息构建 EXE 文件中的表格。当装入程序的时候Windows 要靠这些表格来解析 Windows 函数调用。二. 为啥要学习本节上一分节中所述的枯燥无聊的东西为啥要去学习因为在学习 Windows 程序设计的时候我们会用到很多很多的 Windows API 函数比如 UpdateWindowCreateWindowMessageBox这些个 API 函数基本上是属于 Windows 的三个子系统之一的。也就是我们所学习的 Windows API 函数基本上是属于 KERNEL32.DLL、USER32.DLL、GDI32.DLL 三者之一。这样的知识或许对你的 Windows 程序的学习没啥直接的意义。但是呢我们还是需要去了解。其实Windows 的这种设计思路它对于操作系统的设计也是有着重大的借鉴意义的。对于操作系统者来讲当然可以像 Linux 操作系统那样子编译整个的操作系统将整个的代码都给公布出来。不过Windows 的处理思路也是值得去借鉴的。将来中国的真正意义上的国产操作系统会是什么样子我们尚不知道。不过在此积累知识学习和了解 Linux 与 Windows 的做法了解 苹果的做法与安卓的做法我认为是有意义的。专栏导航上一篇第1章[Win32 章节]Windows 简史回到目录下一篇第1章 第一个 Win32 程序头文件

相关新闻

对大模型的思考

对大模型的思考

1、深度思考模式是在大模型训练阶段就具备的能力吗?还是后来人们通过提示词啥的添加的? “深度思考模式是在大模型训练阶段就具备的能力吗?还是后来人们通过提示词啥的添加的?” 点击看看灵光怎么说 👉 https://www.l…

2026/10/7 9:37:27 阅读更多 →
Kubeless JVM 运行时实战指南:用 Java 与 Scala 打包并部署 JVM 函数

Kubeless JVM 运行时实战指南:用 Java 与 Scala 打包并部署 JVM 函数

后端云原生微服务 【免费下载链接】kubeless Kubernetes Native Serverless Framework 项目地址: https://gitcode.com/gh_mirrors/ku/kubeless 点击查看 免费下载 Kubeless 原生支持多种语言的 Serverless 函数,除了常见的 Node.js、Python、Go 之外&a…

2026/10/7 9:37:27 阅读更多 →
Hazelcast Jet 分区剪枝(Partition Pruning)设计解析:从成员剪枝到扫描分区剪枝

Hazelcast Jet 分区剪枝(Partition Pruning)设计解析:从成员剪枝到扫描分区剪枝

缓存KV存储消息队列流处理后端 【免费下载链接】hazelcast Hazelcast is a unified real-time data platform combining stream processing with a fast data store, allowing customers to act instantly on data-in-motion for real-time insights. 项目地址: htt…

2026/10/7 9:37:27 阅读更多 →

最新新闻

C# WinForm 数据库备份与恢复实战:SQL语句与文件操作两种方式详解

C# WinForm 数据库备份与恢复实战:SQL语句与文件操作两种方式详解

简介:这份资源是面向C# WinForm开发者的数据库备份与恢复实战Demo,基于VS2008实现,适合需要为桌面应用增加数据安全保障能力的初中级开发者参考。示例围绕两种主流方案展开:一是借助SQLDMO这一COM对象模型,通过SQLServ…

2026/10/7 10:04:45 阅读更多 →
hyperframes实战:用HTML和CLI批量生成MP4视频

hyperframes实战:用HTML和CLI批量生成MP4视频

1. 从“hyperframes”这个名字说起:它到底想解决什么问题第一次看到“hyperframes”这个词,我脑子里蹦出来的不是某个具体工具,而是一种感觉——它把“hyper”和“frames”拼在一起,暗示着某种“超高速的帧处理”或者“超轻量的帧…

2026/10/7 10:04:45 阅读更多 →
一句话生成爆款视频:WorkBuddy+Hypit本地工作流实战

一句话生成爆款视频:WorkBuddy+Hypit本地工作流实战

1. 项目概述:用一句话生成爆款视频,不是玄学,是工具链的精准缝合“一句话复刻爆款视频”——这句话乍看像短视频平台的流量话术,但落到实操层面,它背后是一套可拆解、可复现、可批量化的视频生成工作流。我从去年开始系…

2026/10/7 10:04:45 阅读更多 →
OpenShell:开源AI命令行助手,自然语言变可执行命令

OpenShell:开源AI命令行助手,自然语言变可执行命令

我几年前就开始折腾终端工具链,从 zsh 到 fish,从 oh-my-zsh 到各种 fancy prompt,折腾到最后发现一个尴尬的现实:无论怎么美化、补全、加插件,终端最核心的效率瓶颈一直没解决——人类的自然语言和机器的命令行之间&a…

2026/10/7 10:04:45 阅读更多 →
Spring AI ReactAgent阿里云生产落地实战

Spring AI ReactAgent阿里云生产落地实战

1. 这不是“第九掌”,而是Spring AI在阿里云生态落地的临界点“降SpringAI阿里第9掌-或跃在渊-ReactAgent”——这个标题乍看像武侠小说里的秘籍名,但如果你最近在Java后端、AIGC工程化或企业级AI应用开发一线摸爬滚打,大概率已经在这几个关键…

2026/10/7 10:04:45 阅读更多 →
【八个月网安课程】第九周·周三:目录扫描工具——Dirsearch、dirb、御剑参数配置与字典使用

【八个月网安课程】第九周·周三:目录扫描工具——Dirsearch、dirb、御剑参数配置与字典使用

以下是第九周周三学习内容的详细展开。今天你将掌握渗透测试信息收集中最基础也最关键的一环——目录扫描。通过使用 Dirsearch、dirb、御剑等工具,你能快速发现目标站点上隐藏的后台、备份文件、配置文件等敏感路径,为后续漏洞利用铺路。第九周周三&…

2026/10/7 10:03:45 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →