【问题标题】:Windows and ABI CompatibilityWindows 和 ABI 兼容性
【发布时间】:2014-03-12 07:12:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: windows windows-server-2008 abi


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 您的意思是“不需要需要了解理论”吗?
    • @Harry 我想我的意思是您确实需要了解原则和规则。但你也需要测试。
    【解决方案2】:

    this page 上查看对 Windows API 变化的详细分析。报告是在 abi-compliance-checker 工具的帮助下生成的。

    【讨论】:

      猜你喜欢
      • 2021-11-26
      • 2018-01-07
      • 2011-04-09
      • 2013-01-20
      • 1970-01-01
      • 2016-02-02
      • 2012-09-19
      相关资源
      最近更新 更多