最新的SDK不适用于VS6.0 [英] Newest SDK doesn't work with VS6.0

查看:64
本文介绍了最新的SDK不适用于VS6.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最近我正在使用VC ++ 6.0开发一个新的小型看门狗程序(原谅我,我仍然使用VS6.0,我们很快就会迁移到VS2010,但我们需要维护那些编程为的旧软件VC 6.0)。


在这个看门狗程序中,当主程序异常崩溃时,我需要在一些非常特殊且罕见的情况下终止进程。但是,要使用诸如EnumProcesses(),TerminateProcess()之类的SDK过程,我们需要psapi.h和psapi.lib,它们是Platform SDK中包含的
。据说最好使用最新的SDK。所以我下载了适用于Windows 7的SDK v7.0。在psapi.h中,有许多类型定义,例如__out_bcount  __in  __out,我不知道它们的定义。最后,我获得了用于Windows Server 2003 R2的
Windows平台SDK,在此SDK中,根本没有这样的类型定义。


所以,我想最新的SDK需要我转向最新的Visual Studio版本,如VS2010?如果是这样,结论如何"使用最新的SDK更好",似乎与旧的Visual Studio版本没有反向兼容性。


谢谢



Kevin


解决方案

此时,VC 6.0已有15年历史,自那时起已有六个主要的Visual Studio版本。


Windows SDK 7.0支持的最旧的VC工具集版本是Visual Studio 2005。 / p>

Window支持的最旧的VC工具集版本  SDK 8.0是Visual Studio 2010。


最后一个正式支持Visual Studio 6.0的Windows SDK / Platform SDK是2003年2月发布的。


现代Windows SDK使用SAL注释与/ analyze静态代码分析一起使用,这些分析由编译器工具集实现。这就是为什么VS 2005或更高版本是必需的,因为较旧的工具集(VS 6.0 VS .NET 2002,VS .NET 2003)不支持
这项技术,这是微软安全开发生命周期战略的重要组成部分。


忽略几代编译器更改的权衡是,迁移到更新工具的工作量远远大于从发布版本到发布版本的增量成本。可能已经过去了很近的事情。支持旧版和不受支持的Windows版本的
主要技术理由是支持旧的和不受支持的Windows版本。这些天,大多数人都坚持使用VS 2010来支持Windows 2000遗留系统,因为VS 2012仅支持Windows XP或后来的
。我希望你不要试图支持Windows 9x或Windows ME系统。




Recently i was working on a new small watch-dog program using VC++ 6.0 (forgive me, i still use VS6.0, we will move to VS2010 soon but we need to maintain old softwares which were programmed with VC 6.0).

In this watch-dog program, i need to terminate process under some very special and rare case when the main program crashs with exception. However, to use SDK procedures such as EnumProcesses(), TerminateProcess(), we need psapi.h and psapi.lib, which are included in Platform SDK. As it is said that it's better to use newest SDK. So i downloaded SDK v7.0 for Windows 7. In psapi.h, there are many type definitions, such as __out_bcount  __in  __out, which i don't where they are defined. Finally, I got Windows Platform SDK for Windows Server 2003 R2, in this SDK, there is no such type definitions at all.

So, i guess the newest SDK requires i move to newest Visual Studio version, such as VS2010? If so, how comes the conclusion "it's better to use newest SDKs", seems there is no back-compatiblity with older Visual Studio versions.

Thanks

Kevin

解决方案

At this point, VC 6.0 is 15 years old and there have been six major Visual Studio releases since then.

The oldest VC toolset version supported by the Windows SDK 7.0 is Visual Studio 2005.

The oldest VC toolset version supported by the Window  SDK 8.0 is Visual Studio 2010.

The last Windows SDK / Platform SDK to officially support Visual Studio 6.0 was the February 2003 release.

The modern Windows SDK makes use of SAL annotations for use with the /analyze static code analysis which are implemented by the compiler toolset. That is why VS 2005 or later is required because the older toolsets (VS 6.0 VS .NET 2002, VS .NET 2003) do not support this technology which is an essential part of Microsoft's Secure Development Lifecycle strategy.

The tradeoff for ignoring generations of compiler changes is that the effort to move to newer tools is significantly larger than the incremental cost of moving from release to release. It's probably well past time to move up to something more recent. The main strong technical reason to stay on significantly older toolsets is to support old and unsupported releases of Windows. These days that's mostly folks staying with VS 2010 to support Windows 2000 legacy systems since VS 2012 only supports Windows XP or later. I would hope you aren't trying to support Windows 9x or Windows ME systems still.



这篇关于最新的SDK不适用于VS6.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆