Windows platform sdk 头文件的使用

VC6项目维护指南:寻找与集成Windows XP/2003 Platform SDK 在软件开发和系统维护中,软件开发工具包(SDK)是连接应用程序与操作系统API的关键桥梁,它提供了编译所需的头文件和库文件。其核心原理在于确保编译器、SDK与目标运行环境三者间的ABI(应用程序二进制接口)兼容,包括数据结构内存布局、函数调用约定等严格匹配。对于使用Visual C++ 6.0(VC6)维护遗留项目的工程师而言,这一兼容性尤为重要。特定版本的Platform SDK,如Windows XP SP2和Windows Server 2003 R2(February 2003 Edition)SD 阅读详情

SDK的使用有些需要注意的地方:
例如Microsoft Platform SDK, August 2001 Edition版本的SDK,他的目标系统是Microsoft Windows® 95, Microsoft Windows NT® 4.0, Microsoft Windows® 98, Microsoft Windows Millennium Edition (Windows Me), Microsoft Windows 2000, Microsoft Windows XP, and Microsoft Windows .NET Server 。 如果你写的程序准备在Win 95上运行,但是使用了Win 98才有的特性,那么该程序在Win 95上运行时就会出问题。 所以SDK必须对程序的目标平台加以评估,决定是否可以提供相应功能给用户。 SDK通过宏来实现这个目标,给不同的系统定义不同的数字,这样你在VC中用宏定义程序的目标运行平台,SDK根据你的定义决定开放哪些功能。 

SDK使用下面的方法决定提供哪些功能:

Guard StatementMeaning
#if _WIN32_WINNT >= 0x0400Windows NT 4.0 and later. It is not implemented in Windows 95.
#if _WIN32_WINDOWS >= 0x0410Windows 98. The image may not run on Windows 95.
#if _WIN32_WINDOWS >= 0x0490Windows Me. The image may not run on Windows 95/98, Windows NT, or Windows 2000.
#if _WIN32_WINNT >= 0x0500Windows 2000. The image may not run on Windows 95/98 or Windows NT.
#if _WIN32_WINNT >= 0x0501Windows XP. The image may not run on Windows 95/98, Windows NT, Windows Me, or Windows 2000.
#if _WIN32_IE >= 0x0300Internet Explorer 3.0 and later.
#if _WIN32_IE >= 0x0400Internet Explorer 4.0 and later.
#if _WIN32_IE >= 0x0401Internet Explorer 4.01 and later.
#if _WIN32_IE >= 0x0500Internet Explorer 5.0 and later.
#if _WIN32_IE >= 0x0501Internet Explorer 5.01 and later.
#if _WIN32_IE >= 0x0560Internet Explorer 6.0 and later
#if _WIN32_IE >= 0x0600Internet Explorer 6.0 and later

平台定义如下,需要在代码中加上下面某个宏定义指定你的目标平台是哪个:

Minimum System RequiredMacros to Define
Windows 95 and
Windows NT 4.0
WINVER=0x0400
Windows 98 and
Windows NT 4.0
_WIN32_WINDOWS=0x0410 and WINVER=0x0400
Windows NT 4.0_WIN32_WINNT=0x0400 and WINVER=0x0400
Windows 98_WIN32_WINDOWS=0x0410
Windows 2000_WIN32_WINNT=0x0500 and WINVER=0x0500
Windows Me_WIN32_WINDOWS=0x0490
Windows XP and
Windows .NET Server
_WIN32_WINNT=0x0501 and WINVER=0x0501
Internet Explorer 3.0, 3.01, 3.02_WIN32_IE=0x0300
Internet Explorer 4.0_WIN32_IE=0x0400
Internet Explorer 4.01_WIN32_IE=0x0401
Internet Explorer 5.0, 5.0a, 5.0b_WIN32_IE=0x0500
Internet Explorer 5.01, 5.5_WIN32_IE=0x0501
Internet Explorer 6.0_WIN32_IE=0x0560 or
_WIN32_IE=0x0600


例如:
Win98之前的系统不提供多显示器相关API
SDK中有相应的定义,表示只有Win 98以上的系统可以使用下面的内容:
#if(WINVER   >=   0x0500)  
  #define   SM_XVIRTUALSCREEN               76  
  #define   SM_YVIRTUALSCREEN               77  
  #define   SM_CXVIRTUALSCREEN             78  
  #define   SM_CYVIRTUALSCREEN             79  
  #define   SM_CMONITORS                         80  
  #define   SM_SAMEDISPLAYFORMAT         81   
#endif   /*   WINVER   >=   0x0500   */  

如果你的程序打算在Win95上运行,程序定义了 #define WINVER=0x0400。那么使用SM_CMONITORS时,编译器就会报错,说找不到该符号。 

提示: 使用了Windows宏,如果编译器报告找不到定义,那么可能就是SDK对你定义的目标系统不提供支持,你需要在程序中提高你目标系统的定义,例如#define WINVER 0x0500,这样就可以使用编译通过了!

VC6编译64位程序 一.Windows Server 2003 R2 Platform SDK   对于VC6头文件、库缺失的问题,安装 Windows Server 2003 R2 Platform SDK可以解决。 安装完成后,可以使用 "msdev /useenv "命令来打开VC6,。会发现include目录对了一个包含目录:     这样一般就比较完整了,如果还是缺失,则手动添加吧 阅读详情

相关推荐

VC6和SDK的配置

新版的PSDK (Windows Server 2003 SP1 Platform SDK)的下载地址为 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eba0128f-a770-45fl-86f3-7ab010b398a3。如果此地址过期的话,请大家在网上自行搜索并下载。SDK和VC6互相是独立的,不需要安装在同一个目录下,根据自己的实际情况安装就可以了。在安装好VC6和新版的SDK后,需要在VC6中进行相应的设置才能使用新版的SD

Sapphire521的博客 734

使用PlatformIO IDE开发Arduino如何安装和调用外部库文件【基于Visual Studio Code平台】

本文目的在于学习Arduino如何在Vscode开发环境下安装并调用库文件 为何有了Vscode,还要安装插件PlatformIO IDE呢,因为很多时候使用Arduino编写较复杂的程序时,需要调用.h库文件,而VS Code只能写基本函数delay(),digitalWrite()等等,并不能添加#include<Arduino.h>头文件和库文件。所有需要在此基础上安装PlatformIO IDE插件,它的支持功能更加强大。 PlatformIO IDE平台首先要添加Arduino.h头文

peterwu5713的博客 1万+

Microsoft Platform SDK

Microsoft Platform SDK.exe 为文档VS2013配置ARToolkit所设工具包

VC6.0 IDE 编译64位应用程序环境配置

 Microsoft Platform SDK 2001 年 11 月版或更高版本 VisualC++ 6.0 步骤一:安装最新适合xp的SDK 通过双击SDK文件夹下面的Setup.Exe安装Microsoft Platform SDK 到硬盘任意目录后,安装程序会在开始菜单中生成Microsoft Platform SDK的快捷方式。单击"start->Al

xiliang_pan的专栏 7816

CAN接受和发送失败的原因有哪些---之前调试MCP2515驱动时,数据一直发不出去,三个发送邮箱都被占满.至今未解决,读寄存器-总线错误

0.CAN总线错误分析与解决–讲的最精辟的放在最前面 我们知道CAN总线上的每个节点往总线上发送数据的同时会同时读取总线上的数据,并与自己发送的数据作对比。—CAN仲裁??? CAN总线错误分别有发送和接收错误计数,计数达到一定的累计以后就会产生CAN BUS OFF, 这说明CAN总线上出现了严重的错误。如下图CAN总线产生错误后的状态转换机制 如果出现了BUS OFF,总线上的节点需要做一些动作,例如重启CAN控制器或是重新上电,但是这些都只是一些补救措施,最根本的还是需要找到引起BUS OFF的根源

dianqicyuyan的博客 2万+

计量经济学tempdisagg的python库:年度时序变月度

计量经济学tempdisagg的python库:年度时序变月度

素质云笔记 1526

Platform SDK、Windows SDK简介

Platform SDK、Windows SDK简介 由于经常游离于多个WINDOWS版本之间,复习一下内容和一些历史渊源 转载自 https://www.cnblogs.com/kekec/p/3912148.html(可可西-Platform SDK、Windows SDK简介) Platform SDK及Windows SDK是由微软公司出品的一个软件开发包,向在微软的Windows操作...

苏围墙的博客 5888

【SEW-伺服电机-Profinet-io通讯控制——伺服配置】

SEW-伺服电机-Profinet-io通讯控制——伺服配置一、本次使用配置说明编写经历受国际形式与疫情影响相关资料查询阅读测试验证不易二、伺服配置流程1.基本准备条件2.硬件-电路连接3.设备在线连接4.软件-参数配置5.手动运行测试6.PN-IO自动控制配置8.PLC1200硬件组态9.PLC软件编程10.调试故障分析三、总结四、参考 一、本次使用配置说明编写经历 受国际形式与疫情影响 由于近期受国际形式影响以及全球疫情影响,Siemens等常用产品供货期与供货量严重受限,项目上不得不采取选用其它替代产

qq_39024187的博客 1万+

Platform SDK和Windows SDK

1、什么是什么是什么是什么是Windows SDK???? Windows SDK是用来支持32位和64位Windows平台以及.NET框架编程模型的开发包。Windows SDK这个名字从Windows Vista开始使用,它包含以前Platform SDK中的所有内容,同时包含.NET框架的内容 2、什么是什么是什么是什么是Platform SDK???? Platform SDK(也简

hixiaowen的专栏 442

使用 FastAPI 和 LangGraph 构建生产级智能体 AI 系统

这是一本关于使用 FastAPI 和 LangGraph 构建生产级智能体 AI 系统的详细书籍,全文约 10 万字。《Production-Grade Agentic AI System Design and Implementation: Building Agentic AI Systems Using FastAPI and LangGraph》随着人工智能(AI)技术的迅猛发展,智能体(Agent)作为能够自主感知、推理、决策和行动的实体,正逐渐成为构建复杂智能系统的核心。从个性化推荐、客户服务到

AI天才研究院 346

数据库小技能:数据导入脚本

背景:版本大升级,从2.0升级到3.0 ,服务端开发语言从c#换到java语言。数据库类型从microsalft sql server 换到mysql。数据来源于微信,用于查询卡bin。

专注于计算机研发知识和资讯分享 773

Microsoft Platform SDK 选择及在vc++6.0中的配置

Windows Platform SDK Download Sites: Windows Server 2003 PSDK February 2003 Edition,可以和VC6一起使用、并支持各种目标OS的最后一个版本的SDK。 This edition of the SDK supports development for the following platforms: Windo

辰枫的专栏 2095

基于截图详解:SAP GUI for Java 如何设置登录链接,以及 conn= 连接字符串该怎么写

摘要:SAP GUI for Java 的连接属性配置关键是在"高级"页签的"conn="后填写连接字符串。连接字符串格式取决于网络拓扑:直连应用服务器使用"/H/主机/S/端口";通过消息服务器负载均衡使用"/M/消息服务器/S/端口/G/组名";经SAProuter访问则需添加路由器前缀。配置时需注意专家模式会覆盖其他页签设置,且连接字符串还支持附加参数如客户端、语言和默认事务码。具体填写内容应根据Basis团队提供的系统信

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 250

Platform SDK,Windows SDK

问题1:什么是Windows SDK?Windows SDK是用来支持32位和64位Windows平台以及.NET框架编程模型的开发包。Windows SDK这个名字从Windows Vista开始使用,它包含以前Platform SDK中的所有内容,同时包含.NET框架的内容。问题2:什么是Platform SDK?Platform SDK(也简写作PSDK)是在Windows Vista之

1320

PyTorch深度学习实战(6)——神经网络性能优化技术

神经网络性能优化技术是指通过改进神经网络的结构、参数初始化、正则化和训练过程等方面来提高其性能和泛化能力的方法。优化技术的选择和调试需要根据具体问题进行,通过不断实验和调整,找到最适合网络的优化策略。本节首先训练了一个简单的全连接网络,然后在此基础上介绍了简单有效的神经网络性能提升技巧。

盼小辉丶的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

MSDN 6.0 之 Platform SDK 内容导航

MSDN 6.0 之 Platform SDK 内容导航王天平,北京,荣丰20082005年7月3日从头文件说起实际上在每个用C编写的Windows程式的开头都可看到:#include WINDOWS.H是主要的引入头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。这些头文件中最重要的和最基本的是:l         WINDEF.H 基本类型定义。l        

明日帝国的专栏-技术改进生活 3876

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

使用“VS2008”编译Platform SDK中Filters的例子

编译Platform SDK包中的一个directshow的Filters的例子(ezrgb24),不使用makefile编译,使用vs2008的集成开发环境编译的步骤注:PSDK = Platform SDK 安装目录一、先用 (PSDK)/Samples/Multimedia/DirectShow/BaseClasses下的Makefile文件编译出strmbasd.lib(这是D

973

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Microsoft Platform SDK for Windows Server 2003 R2与VC6的结合使用

http://hi.baidu.com/conanbox/blog/item/8654d3011f9bb380e950cdba.html Microsoft Platform SDK for Windows Server 2003 R2与VC6的结合使用 2009-01-01 22:06 在编译一个获取机器MAC地址的程序时报错,需要iphlpapi.h头文件,G

anhkgg的专栏 4577

关于安装 DirectX SDk Dec 2005 后无法编译DirectShow应用程序的问题

我发现在安装了新的DirectX SDK Dec 2005后编译DirectShow应用程序时提示无法找到dhsow.h这个文件,觉得非常奇怪,于是上网找原因,很快,在一个论坛看到了这样的消息: ------------------------------------------------------------------------------------------Re: Still ca...

weixin_34236497的博客 139

Windows SDK

The Microsoft Windows SDK is a set of tools, code samples, documentation, compilers, headers, and libraries that developers can use to create applications that run on Microsoft Windows operating syste...

weixin_34138056的博客 156

最后一版支持VC6的SDK的下载地址

可见微软已经不再对 VC6 支持了,最新的 SDK 已经不能在 VC6 上使用。vc6推出时,是98年,windows2000,windowsXP都还没有推出。所以VC6的头文件中仅仅包含win98/NT的API、常量声明。在新的系统推出后,windows2000/xp都增添了一些新的API函数、常量定义。于是,你就需要安装platform sdk,它会安装一些新的头文件,lib库到你的VC里面,这里面包含了新操作系统的新API函数、常量的声明。装了platform SDK,在VC6里面就可以调用

木木 1万+

VC6.0 SDK资源包:维护遗留Windows C++项目的完整环境搭建指南

在Windows平台C++开发领域,SDK(软件开发工具包)是连接应用程序与操作系统API的核心桥梁,它提供了编译、链接和调试所需的头文件、库及工具链。其原理在于通过预定义的接口和实现,使开发者能够调用系统功能,而无需关注底层细节。对于维护历史遗留项目而言,特定版本的SDK具有不可替代的技术价值,它能确保代码行为与原始编译环境完全一致,避免因运行时库不兼容或API变更引发的潜在风险。典型的应用场景包括工业控制软件、嵌入式上位机以及金融、电信等行业的传统业务系统维护,这些系统往往基于早期的开发工具构建并稳定运

weixin_34268843的博客 480

vc6.0++安装及补丁、插件,microsoft platform sdk for windows2003

以本人的安装版本经验来说: 1、版本---英文版 2、补丁---sp6(不安装的话,你打开工作空间和添加文件到项目会出错) 3、插件---行号插件,visual assist x、汉化包不建议安装,容易出现问题 4、最重要的是:如果你想要建立复杂的工程,例如有些头文件在vs中有,       而在vc中你引用后提示没有此文件,你就 需要安装Microsoft platform sdk f

少壮要努力 1001

Using the SDK Headers

Using the SDK Headers<br />This version of the Microsoft® Platform SDK targets applications for Microsoft Windows® 95, Microsoft Windows NT® 4.0, Microsoft Windows® 98, Microsoft Windows Millennium Edition (Windows Me), Microsoft Windows 2000, Microsoft Wi

sardine_fish的专栏 630
上一篇: Windows开发环境搭建
下一篇: Windows 多显示器下的编程
FreeWave
博客等级 码龄19年 9粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值