【问题标题】:Is a single wxWidgets MSW application binary compatible across Win2K, XP, Vista, and 7?单个 wxWidgets MSW 应用程序二进制文件是否兼容 Win2K、XP、Vista 和 7?
【发布时间】:2011-01-17 18:20:04
【问题描述】:

wxWdgets 是一个跨平台库,包括对所有主要 windows 版本的支持,但我在 wxWidgets 文档中找不到任何关于 single MSW (windows ) 跨不同 Windows 版本构建 wxWidgets 库。假设我的核心应用程序只使用 vanilla C++(也许是所有平台上可用的 win32 api 的最小公分母),除了 wx 函数,静态链接到单个版本的 wxWidgets 库会产生一个可以跨 Win2K、XP、 Vista和Windows 7?该库是否需要在 win2K(“功能最少”的平台?)上构建,或者在 XP 上构建它也可以工作?任何提示或指针将不胜感激!

【问题讨论】:

    标签: windows wxwidgets portability


    【解决方案1】:

    您可以在任何您想要的操作系统版本上构建应用程序,这不会影响应用程序与不同 Windows 版本的兼容性。您甚至可以在其他操作系统上交叉编译 Windows 应用程序。

    重要的是选择应用程序引用的 API 调用。在加载时链接的任何函数都需要存在于操作系统中,而延迟加载的库或 API 函数不会影响兼容性,只要应用程序优雅地处理错误即可。

    稳定的 wxWidgets 版本 2.8 至少与 Windows 2000 和所有更高版本兼容(如果您使用库的非 Unicode 构建,您甚至可以针对 Windows 9X),它延迟加载所有在 Windows 中不可用的功能2000(例如主题支持,随 XP 引入)。您可以确定应用程序可以运行,但可能有些东西在 Windows 2000 上无法运行(例如透明 PNG)。

    开发环境可能会施加额外的最低操作系统版本要求。例如,较新的 Visual C++ 版本可能需要在较旧的操作系统版本上安装 C 运行时,并且可能存在最低支持版本。然而,这与程序中是否使用 wxWidgets 无关。

    【讨论】:

    • 如果您使用 unicows 选项构建,您甚至可以在 Win 9x 上使用 wxWidgets Unicode 可执行文件。
    【解决方案2】:

    是的,wx 二进制文件在 XP--7 范围内是可移植的(如果您不使用 Unicode 或使用 MSLU,同样的二进制文件也应该在 95 年以前的系统上写入,但现在很少有人使用那些(谢天谢地)这实际上可能在没有人注意到的情况下被破坏了)。 wxWidgets 动态加载所有 Windows 版本的系统 DLL 中不存在的任何功能,即通过GetProcAddress(),并为旧系统使用合理的后备。

    【讨论】:

      猜你喜欢
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 2018-10-04
      • 2010-11-02
      • 1970-01-01
      • 2011-08-30
      相关资源
      最近更新 更多