当前位置: 首页 > news >正文

【WindowsAPI】 Windows SDK 的包含目录结构

【WindowsAPI】 Windows SDK 的包含目录结构

文章目录

  • 【WindowsAPI】 Windows SDK 的包含目录结构
    • 1. 整体结构概览
    • 2. 详细分类说明
      • cppwinrt/ - C++/WinRT 头文件
      • km/ - Kernel Mode 内核模式
      • shared/ - 共享头文件
      • ucrt/ - `Universal C Runtime`
      • um/ - User Mode 用户模式
      • winrt/ - 传统 Windows 运行时 (C++/CX)
    • 3. 开发场景对应
      • 桌面应用程序:
      • 驱动程序开发:
      • 现代UWP应用:
    • 4. Visual Studio 中的配置
    • 5. 版本号说明
    • 总结:

1. 整体结构概览

10.0.26100.0/
├── cppwinrt/     # C++/WinRT 现代Windows运行时支持
├── km/           # Kernel Mode 内核模式开发
├── shared/       # 共享头文件 (UM和KM共用)
├── ucrt/         # Universal C Runtime 通用C运行时
├── um/           # User Mode 用户模式开发  
└── winrt/        # 传统C++/CX Windows运行时

2. 详细分类说明

cppwinrt/ - C++/WinRT 头文件

// 现代C++ Windows运行时投影
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.UI.Xaml.h>// 使用示例:
winrt::Windows::UI::Xaml::Controls::Button button;
  • 作用:基于标准C++17的Windows运行时支持
  • 特点:无额外语言扩展,纯标准C++

km/ - Kernel Mode 内核模式

// 驱动程序开发头文件
#include <wdm.h>           // 核心驱动头文件
#include <ntddk.h>         // NT设备驱动
#include <ntifs.h>         // 文件系统驱动// 使用示例:
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath);
  • 作用:内核模式驱动开发

  • 包含:内核API、驱动框架、硬件访问

shared/ - 共享头文件

// UM和KM都可以使用的头文件
#include <guiddef.h>       // GUID定义
#include <specstrings.h>   // 注解和字符串处理
#include <sdkddkver.h>     // SDK版本定义
  • 作用:用户模式和内核模式共享的定义

  • 特点:不依赖特定执行模式

ucrt/ - Universal C Runtime

// 标准C库头文件
#include <stdio.h>         // 标准IO
#include <stdlib.h>        // 内存管理
#include <string.h>        // 字符串操作
#include <math.h>          // 数学函数
  • 作用:通用C运行时库

  • 包含:ANSI C标准库、安全函数版本

um/ - User Mode 用户模式

// Windows API 头文件
#include <Windows.h>       // 主要Windows头文件
#include <winuser.h>       // 用户界面
#include <wingdi.h>        # 图形设备接口
#include <winbase.h>       # 基础API// 使用示例:
HANDLE hFile = CreateFile("test.txt", GENERIC_READ, ...);
  • 作用:用户模式应用程序开发

  • 包含:Win32 API、COM、ActiveX、网络等

winrt/ - 传统 Windows 运行时 (C++/CX)

// C++/CX 扩展语法
#include <wrl.h>           // Windows运行时库
#include <robuffer.h>      # 缓冲区支持// 使用示例(C++/CX语法):
Platform::String^ str = "Hello";

3. 开发场景对应

桌面应用程序:

#include <um/Windows.h>        // 主要使用um
#include <ucrt/stdio.h>        // 辅助使用ucrt

驱动程序开发:

#include <km/wdm.h>            // 主要使用km  
#include <shared/guiddef.h>    // 共享定义

现代UWP应用:

#include <cppwinrt/winrt/Windows.Foundation.h>  // 现代方式
// 或
#include <winrt/wrl.h>                          // 传统方式

4. Visual Studio 中的配置

在项目属性中:

VC++ Directories → Include Directories
会自动包含这些路径C/C++ → Additional Include Directories
也可以手动添加特定子目录

5. 版本号说明

10.0.26100.0 对应:

  • Windows 11 24H2 的 SDK 版本
  • 每个Windows版本有对应的SDK版本

总结:

这个目录结构体现了微软清晰的架构分层:

  • um/km:执行模式分离
  • ucrt:运行时基础
  • cppwinrt/winrt:新旧技术栈并存
  • shared:跨模式共享

这样的设计让开发者可以根据目标平台和技术栈选择正确的头文件。

http://www.dtcms.com/a/610355.html

相关文章:

  • Linux环境下的C语言编程(二十二)
  • 网站制作有哪些种类网站建设实训报告作业
  • 运城市网站建设公司发布网站的流程
  • CNN_Demo_20251114
  • 佳易王桌球计时计费管理系统:专注单店数字化运营
  • Rsync:管理员详细指南 第2部分
  • 海康摄像机SDK获取视频流转码显示
  • 事业单位网站登录模板景德镇陶瓷学院校友做网站的
  • 当消防安全遇见数字孪生:一场防患于未“燃”的科技革命
  • Day 43 复习日--Fashion Mnist数据集
  • Android线程池参数配置指南:理论与实战
  • 外贸网站建设科技公司logo是什么意思
  • 手机网站如何排版高端网站建设 恩愉科技
  • 广州手机建设网站小说网站80电子书怎么做
  • S型单级双吸水平中开式离心泵泵轴断裂原因
  • 网站制作怎么学用闲置的安卓手机做网站服务器
  • UE5中,导入的CAD的Actor为什么Simulate Physics无法被勾选?
  • 佛山网站seo合肥优化网站
  • 珠海专业网站制作网站建设举措
  • vue3使用‘js-audio-recorder‘插件实现录音功能,回传pcm文件
  • 关键词搜索引擎工具爱站什么叫网站空间
  • 成都好网站购物系统流程图
  • 基于crontab、sftp和SpringBoot命令行应用的数据定时上报方案
  • C/C++混合项目中的头文件管理:.h与.hpp的分工与协作
  • C语言最好的编译器 | 选择合适的编译器,提高开发效率
  • 【虚拟现实技术】在Unity里创建一个简单的AR项目
  • 第一章 家世
  • 评价指标MAE 、MSE 、R2
  • 珠海市律师网站建设怎么样wordpress教程 页面
  • 便利的合肥网站建设专业的医疗行业网站模板