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

【C++】C++中SDKDDKVer.h和WinSDKVer.h函数库详解

 目录

一.SDKDDKVer.h介绍

二.WinSDKVer.h介绍

三.WinSDKVer.h  和  SDKDDKVer.h  的区别


一.SDKDDKVer.h介绍

SDKDDKVer.h  是一个在 Windows 软件开发中常见的头文件,它用于定义软件开发工具包(SDK)和驱动开发工具包(DDK)的版本信息。这个文件通常位于 Visual Studio 安装目录下的  Include  子目录中。
 SDKDDKVer.h  包含了一些宏定义,这些宏定义用来指定当前使用的 Windows SDK 和 DDK 的版本。例如,它可能包含如下定义:

// 定义Windows SDK的版本
#define _WIN32_WINNT 0x0601 // 指定Windows 7的API支持// 定义DDK的版本信息
#define NTDDI_VERSION 0x06010000 // 对应Windows 7的DDK版本

使用这些宏定义,开发者可以确保他们的代码能够兼容特定版本的 Windows API 和 DDK API。如果你在开发 Windows 应用程序或驱动程序,并需要确保与特定版本的 Windows 兼容,你可能需要在你的项目设置中包含这个文件。

二.WinSDKVer.h介绍

WinSDKVer.h  是一个在 Windows SDK(软件开发工具包)中使用的头文件,它用于定义 Windows SDK 的版本信息。这个文件通常位于 Windows SDK 的安装目录下的  Include  子目录中。

在 Windows SDK 中, WinSDKVer.h  包含了一些预处理器宏定义,这些宏定义帮助开发者确定他们正在使用的 SDK 版本。例如,它可能包含如下定义:

// 定义Windows SDK的主要版本号
#define WINVER 0x0A00 // 对应Windows 10的版本号// 定义Windows SDK的构建版本
#define _WIN32_WINNT 0x0A00 // 指定Windows 10的API支持// 定义Windows SDK的版本号
#define NTDDI_VERSION 0x0A000000 // 指定Windows 10的DDK版本

这些宏定义允许开发者在他们的代码中使用条件编译来确保兼容性,或者调用特定版本的 Windows API。例如,通过设置  WINVER  或  _WIN32_WINNT ,开发者可以确保他们的应用程序只使用特定版本的 Windows 支持的 API。

三.WinSDKVer.h  和  SDKDDKVer.h  的区别

 WinSDKVer.h  和  SDKDDKVer.h  都是用于定义 Windows 软件开发工具包(SDK)和驱动开发工具包(DDK)版本信息的头文件,但它们的作用和使用场景略有不同:

1. WinSDKVer.h:

这个头文件主要用于定义 Windows SDK 的版本信息。

它通常包含定义操作系统版本和API级别的宏,如  WINVER  和  _WIN32_WINNT 。

开发者通过设置这些宏来指定他们希望应用程序使用的 Windows 版本和API集。

它通常用于应用程序开发,以确保应用程序能够使用特定版本的 Windows API。

2. SDKDDKVer.h:

这个头文件用于定义 Windows SDK 和 DDK 的版本信息。

它不仅包含 Windows SDK 的版本信息,还可能包含驱动开发相关的宏定义,如  NTDDI_VERSION 。

 NTDDI_VERSION  宏定义用于指定驱动程序开发时所针对的 Windows 版本,这对于驱动程序的兼容性至关重要。

它更多地用于驱动程序开发,以确保驱动程序能够与特定版本的 Windows 操作系统兼容。

简而言之, WinSDKVer.h  更侧重于应用程序开发,而  SDKDDKVer.h  则更侧重于驱动程序开发。然而,在实际使用中,这两个文件可能都会包含一些重叠的宏定义,用于确保代码的兼容性。开发者应该根据自己的开发需求和目标平台来选择合适的宏定义进行设置。

相关文章:

【C++】C++中SDKDDKVer.h和WinSDKVer.h函数库详解

目录 一.SDKDDKVer.h介绍 二.WinSDKVer.h介绍 三.WinSDKVer.h 和 SDKDDKVer.h 的区别 一.SDKDDKVer.h介绍 SDKDDKVer.h 是一个在 Windows 软件开发中常见的头文件,它用于定义软件开发工具包(SDK)和驱动开发工具包(DDK&…...

uni-app 蓝牙传输

https://www.cnblogs.com/ckfuture/p/16450418.html https://www.cnblogs.com/yangxiaobai123/p/16021058.html 字符串转base64:https://www.cnblogs.com/sunny3158/p/17312158.html 将 ArrayBuffer 对象转成 Base64 字符串:基础 - uni.arrayBufferT…...

MBR10200CT-ASEMI智能AI应用MBR10200CT

编辑:ll MBR10200CT-ASEMI智能AI应用MBR10200CT 型号:MBR10200CT 品牌:ASEMI 封装:TO-220 批号:最新 恢复时间:35ns 最大平均正向电流(IF):10A 最大循环峰值反向…...

力扣 爬楼梯

动态规划算法基础篇。 class Solution {public int climbStairs(int n) {int[] f new int[n 1];f[0] 1;f[1] 1;//当爬到n阶楼梯时&#xff0c;可知是由n-1阶或n-2阶楼梯而来for(int i 2; i < n; i) {f[i] f[i - 1] f[i - 2];//后面的每一阶种数由前两个状态得到}ret…...

java设计模式之:策略模式+工厂模式整合案例实战(一)

本文介绍项目中常用的策略模式工厂模式的案例&#xff0c;该案例是针对策略类比较少的情况&#xff1b;下一篇会讲解策略类比较多的案例&#xff0c;下面直接开始&#xff1a; 案例1&#xff1a;项目中对系统中的客户和销售进行事件通知(短信、邮件、钉钉) 首先要有通知的策略…...

国内Ubuntu安装 stable-diffusion教程,换成国内镜像

安装依赖&#xff1a; 首先更新系统并安装Python 3.10和pip&#xff1a; sudo apt update sudo apt install python3.10 python3-pip 设置Python虚拟环境&#xff08;可选&#xff09;&#xff1a; 安装Python虚拟环境管理工具&#xff0c;并创建激活虚拟环境&#xff1a; su…...

JAVA final详细介绍

一、介绍 final 中文意思: 最后的,最终的. final 可以修饰类、属性、方法和局部变量, 在某些情况下,程序员可能有以下需求&#xff0c;就会使用到final&#xff1a; 1&#xff09;当不希望类被继承时,可以用final修饰。 //如果我们要求A类不能被其他类继承 //可以使用fin…...

45、tomcat+课后实验

tomcat 1、tomcat tomcat和php一样&#xff0c;都是用来处理动态页面的。 tomcat也可以作为web应用服务器&#xff0c;开源的。 php .php tomcat .jsp nginx .html tomcat 是用Java代码写的程序&#xff0c;运行的是Java的web应用程序。 tomcat的特点和功能&#xff1a…...

设计模式的七大原则

1.单一职责原则 单一职责原则(Single responsibility principle)&#xff0c;即一个类应该只负责一项职责。如类A负责两个不同职责&#xff1a;职责1&#xff0c;职责2。当职责1需求变更而改变A时&#xff0c;可能造成职责2执行错误&#xff0c;所以需要将类A的粒度分解为A1、…...

ThreeJS-3D教学十五:ShaderMaterial(noise、random)

ThreeJS-3D教学十四:ShaderMaterial(length、fract、step) 上面这篇主要是操作 fragmentShader 片元着色器,实现对物体颜色的修改,这次咱们来看下修改 vertexShader 顶点着色器,这个其实就是位移各个顶点的位置。 接下来我们先介绍下 noise 噪声函数(Perlin Noise、Sim…...

LeetCode 2974.最小数字游戏:排序+交换奇偶位

【LetMeFly】2974.最小数字游戏&#xff1a;排序交换奇偶位 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-number-game/ 你有一个下标从 0 开始、长度为 偶数 的整数数组 nums &#xff0c;同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏&#xff…...

使用vllIm部署大语言模型

使用vllm部署大语言模型一般需要以下步骤&#xff1a; 一、准备工作 1. 系统要求 - 操作系统&#xff1a;常见的 Linux 发行版&#xff08;如 Ubuntu、CentOS&#xff09;或 Windows&#xff08;通过 WSL&#xff09;。 - GPU 支持&#xff1a;NVIDIA GPU 并安装了适当的驱动程…...

静态搜索iOS动态链接函数的调用位置

静态搜索iOS动态链接函数的调用位置 可执行文件格式mach-O,是在苹果的操作系统 macOS 和 iOS 上使用的一种二进制文件格式。 在一些iOS安全扫描中&#xff0c;可能存在需要获取函数具体调用位置的需求&#xff0c;能指导用户更精确的定位漏洞。 现在以NSLog函数为例&#xff…...

【鸿蒙学习笔记】尺寸设置・layoutWeight・对子组件进行重新布局

官方文档&#xff1a;尺寸设置 目录标题 layoutWeight&#xff1a;对子组件进行重新布局 layoutWeight&#xff1a;对子组件进行重新布局 设置了layoutWeight属性的子元素与兄弟元素占主轴尺寸按照权重进行分配&#xff0c;忽略元素本身尺寸设置。 // 引入包名 import { http…...

vue实现表单输入框数字类型校验功能

vue实现表单输入框数字类型校验功能 1. 样式代码 <el-form-item label"订单总价"><el-input size"small" v-model"form.totalPrice" placeholder"请输入订单总价 正整数或者2位数小数" input"check(form.totalPric…...

JS登录页源码 —— 可一键复制抱走

前期回顾 https://blog.csdn.net/m0_57904695/article/details/139838176?spm1001.2014.3001.5501https://blog.csdn.net/m0_57904695/article/details/139838176?spm1001.2014.3001.5501 登录页预览效果 <!DOCTYPE html> <html lang"en"><head…...

Kithara与OpenCV (一)

Kithara使用 OpenCV 库 目录 Kithara使用 OpenCV 库简介需求和支持的环境构建 OpenCV 库使用 CMake 进行配置以与 Kithara 一起工作 使用 OpenCV 库设置项目运行 OpenCV 代码图像采集和 OpenCV自动并行化限制和局限性1.系统建议2.实时限制3.不支持的功能和缺失的功能4.显示 Ope…...

什么是软件定义安全SDSec

一、软件定义安全SDSec产生的背景 软件定义安全&#xff08;Software Defined Security&#xff0c;SDSec&#xff09;的产生背景主要源于传统网络安全防护方法在面对复杂网络环境时的不适应性&#xff0c;以及软件定义网络&#xff08;SDN&#xff09;技术的发展和应用。 SD…...

【C语言】C语言可以做什么?

目录 1. 操作系统开发1.1 操作系统内核1.2 设备驱动程序1.3 系统工具和实用程序 2. 嵌入式系统2.1 微控制器编程2.2 传感器和执行器控制2.3 消费电子产品 3. 应用程序开发3.1 图形用户界面应用3.2 游戏开发3.3 多媒体处理 4. 网络编程4.1 网络协议实现4.2 服务器和客户端程序4.…...

WordPress 主题技巧:给文章页增加“谁来过”模块。

模块功能&#xff1a; 我个人目前在做一个电影类的网站&#xff0c;在开发文章页的模版时候&#xff0c;突然觉得给文章页增加一个“谁对本电影感兴趣”的功能模块可能会比较有趣&#xff0c;这个功能有点类似于‘足迹’的感觉&#xff0c;用户可以通过这个功能&#xff0c;发…...

Steam创意工坊模组下载神器:跨平台游戏玩家的必备工具

Steam创意工坊模组下载神器&#xff1a;跨平台游戏玩家的必备工具 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你知道吗&#xff1f;作为一名游戏爱好者&#xff0c;你是否曾…...

当记忆的碎片遇上密码学:如何用btcrecover找回丢失的比特币钱包访问权

当记忆的碎片遇上密码学&#xff1a;如何用btcrecover找回丢失的比特币钱包访问权 【免费下载链接】btcrecover An open source Bitcoin wallet password and seed recovery tool designed for the case where you already know most of your password/seed, but need assistan…...

Unity 2019格斗游戏开发:帧同步、输入缓冲与Hitbox/Hurtbox实现

1. 为什么2019版Unity仍是横板格斗开发的“黄金锚点”我带过三届游戏开发训练营&#xff0c;每次开课前都会问学员&#xff1a;“你最想用哪个版本做格斗游戏&#xff1f;”——超过七成的人脱口而出“最新版”。但当我把他们拉进一个用Unity 2019.4.40f1跑通的《街霸》风格连招…...

LabVIEW布尔控件机械动作选错,程序逻辑全乱?手把手教你6种动作的实战用法(附避坑案例)

LabVIEW布尔控件机械动作全解析&#xff1a;从入门到避坑实战指南 引言&#xff1a;为什么你的LabVIEW按钮总是不听话&#xff1f; 在LabVIEW开发过程中&#xff0c;布尔控件就像电路中的开关&#xff0c;看似简单却暗藏玄机。许多开发者都有过这样的经历&#xff1a;精心设计的…...

【职场】职场里,“被喜欢“和“被重用“是两件完全不同的事

职场里&#xff0c;"被喜欢"和"被重用"是两件完全不同的事我见过太多这样的人。 在公司里人缘极好&#xff0c;谁都说他靠谱&#xff0c;谁都愿意跟他合作。 开会时第一个帮人倒水&#xff0c;群里消息第一个回复&#xff0c;同事生日永远记得&#xff0c;…...

别再为printf发愁了!华大HC32L13x单片机串口打印的三种实战配置(Keil MDK环境)

华大HC32L13x单片机串口打印的三种高效配置方案 在嵌入式开发中&#xff0c;printf函数作为调试利器&#xff0c;其重要性不言而喻。然而&#xff0c;当您拿到华大HC32L13系列单片机官方SDK&#xff0c;按照常规ARM单片机经验配置printf时&#xff0c;却发现串口毫无反应——这…...

基于以太网转换器的工业交换机接入方案提升数据传输效率与稳定性

一、项目背景 某中型自动化生产企业现有3条生产线&#xff0c;核心控制设备采用10套西门子S7-200 SMART CPU SR40 PLC&#xff0c;负责生产线配料、输送、检测等全流程控制。随着企业数字化升级推进&#xff0c;需实现PLC与上位机、触摸屏的数据实时交互&#xff0c;接入工厂简…...

【AI】了解ChatMemory 底层实现机制

&#xff08;说实在&#xff0c;看个 七、整体架构总结 就行了&#xff09; 为何要了解底层原理&#xff0c;其意义在于出问题好排查&#xff0c;写代码时有思路。 基于源码调试与运行时验证&#xff0c;深度拆解ChatMemory 底层实现机制&#xff0c;重点解析 ChatMemoryStor…...

别再硬编码了!ABAP Text Elements 三分钟搞定报表字段中文显示(附图标添加技巧)

ABAP文本元素实战&#xff1a;告别硬编码的报表开发艺术 每次看到报表界面上那些冷冰冰的字段名——MATNR、WERKS、VBELN——你是不是也感到一丝尴尬&#xff1f;业务用户可不懂这些技术缩写&#xff0c;他们需要的是直观的"物料编号"、"工厂"和"销售…...

3分钟掌握UnityPackage Extractor:无需Unity轻松提取资源包

3分钟掌握UnityPackage Extractor&#xff1a;无需Unity轻松提取资源包 【免费下载链接】unitypackage_extractor Extract a .unitypackage, with or without Python 项目地址: https://gitcode.com/gh_mirrors/un/unitypackage_extractor 你是否曾因需要查看Unity资源包…...