Windows 和 ABI 兼容性

标签 windows windows-server-2008 abi

我有 Windows 2003 服务器,带有基于 VC6 构建的可执行文件。我需要检查 Windows 2008 服务器(两台服务器都是 32 位)上可执行文件的兼容性。我知道我需要检查这两个版本的 ABI 兼容性。

如何确认任意两个版本的操作系统都具有 ABI 兼容性?或者 Windows 是否将 ABI 兼容性作为产品文档的一部分发布?

除了 ABI 兼容性之外,还有其他需要注意的事项吗?

最佳答案

Windows 维护不同版本之间的二进制 ABI 兼容性。这意味着程序不需要针对不同版本重新编译。

但是,这不足以保证程序能够在您尚未测试的版本上正确运行。可能出现问题的一些示例:

  • 您使用了已弃用的 API,该 API 已在更高版本中删除。
  • 您使用的 API 仅存在于更高版本的操作系统上,因此您的程序无法在旧版本上运行。
  • 操作系统更改的功能会破坏您的应用程序。典型的例子是 Vista 中的 UAC。 ABI 没有改变,但一些 UAC 之前的应用程序无法在 UAC 下正确运行。

最重要的是,您确实需要了解二进制兼容性背后的理论。但这并不能免除您进行测试的需要。确保您已在所有支持的系统上测试了您的程序。或者至少是您能合理找到的尽可能多的。

关于Windows 和 ABI 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344393/

相关文章:

Windows 8 Phone 应用程序与 Windows 8 选项卡应用程序

asp.net - web.config executionTimeout 和 IIS 超时有什么区别?

swift - 分发用 Swift 编写的通用框架

c - 输入双关语 : int[] and struct { int … }

c# - 以不同用户身份运行的 selenium web 驱动程序未获取用户的配置文件/ session

java - Windows JVM 限制 http 输出流的上传速度

asp.net - IIS 7.5 中未显示 ASP.NET 功能

c# - 在 context.Request 中解码查询字符串

boolean - opencl支持 boolean 变量吗?