【问题标题】:VC++ Metro Style Apps WindowsVC++ Metro 风格应用程序 Windows
【发布时间】:2012-07-05 21:03:33
【问题描述】:

我有十年前的 MFC VC++ 桌面应用程序。该应用程序的美妙之处在于它适用于 Windows 2000 到 Windows 7,支持超过 15 种语言。它在 winsocket 之上使用 IPC 和 SSL 进行多线程处理。

最近我读到 win 8 Metro 风格我们将无法运行现有的应用程序。这是否意味着 Windows 正在走向杀死 VC++ 或 MFC?

我是否有可能为所有 Windows 版本保留相同的代码库?我有用于 winsock 和 MFC 的替代 API 吗?必须用 HTML5 编写应用程序吗?

【问题讨论】:

  • Metro 应用不会在低于 Windows 8 的系统上运行。事实上,您甚至不能在低于 Windows 8 的系统上构建 Metro 应用比 Windows 8。但是,“旧版”Win32 和 .Net 应用程序可以在 Windows 8 上运行(有某些限制:例如驱动程序兼容性或安全问题)。 PS:出于所有意图和目的,MFC 很久以前就死了;)

标签: windows visual-c++ mfc microsoft-metro


【解决方案1】:

最近我正在阅读我们将无法赢得 Windows 8 Metro 风格的文章 运行现有的应用程序

我发现用Windows Runtime (WinRT) 来思考问题更容易。基于 ARM 的 Windows 8 系统将支持 WinRT 程序。基于 x86 的 Windows 8 系统能够运行 WinRT 程序现有的 Win32 程序。

暗示(或者可能是假设?)所有 Metro 风格的应用程序都是 WinRT 应用程序。当然,WinRT 旨在用于构建Metro style applications。我可以想象构建看起来像 Metro 应用程序的传统 Win32 应用程序 - 大方形活动磁贴、延伸到可见桌面左右两侧的应用程序表面等。我不确定这些是否真的会被视为“Metro 风格”应用程序如果它们的构建方式与 Metro 应用程序相同。

现有应用程序不会在基于 ARM 的 Windows 8 系统上运行,也不会在基于 x86 的 Windows 8 系统的非桌面部分中运行。它们在基于 x86 的 Windows 系统的桌面部分中运行。这是 Visual Studio 运行的地方,也是 PhotoShop 可能运行的地方,也是当前在 Windows 7 上运行的所有程序的运行地方。

这是否意味着 Windows 正在走向杀死 VC++ 或 MFC?

绝对不是。 MFC 应用程序可以在基于 x86 的系统上的 Windows 8 桌面环境中正常运行。 MFC 应用程序将在基于 ARM 的 Windows 8 系统上运行 - 但是有很多地方 MFC 应用程序无法运行。

对于 VC++,你可以构建 Metro 风格的应用程序using C++,如果你愿意,你只需要遵循 Metro “风格”。

我是否有可能为所有窗口保留相同的代码库 版本?

这取决于“所有 Windows 版本”的含义。今天在基于 Windows 7 x86 的系统上运行的代码明天将在基于 Windows 8 x86 的系统上运行。如果那是您的目标市场,那么您就完成了,您无需更改代码。你唯一不会拥有的是一个活跃的瓷砖。但是您可以使用 Metro 风格 API 构建一个活动磁贴,并在有意义的情况下将其绑定到您的应用程序的逻辑中。

如果您想要支持基于 ARM 的 Windows 8 系统以及基于 x86 的系统,或者如果您希望您的所有程序在基于 x86 的系统上运行时都具有 Metro 的外观和感觉,那么您必须更改您的程序使用 HTML/CSS 或 XAML 和 WinRT API 而不是 MFC 和 Win32 API。

或者,如果您想要两个世界,也许您甚至可以将程序的逻辑与 UI 分离,然后围绕该通用逻辑构建 MFC 皮肤和 Metro 皮肤

我有用于 winsock 和 MFC 的替代 API 吗?

对于网络,您可以在 JavaScript、Visual Basic、C# 和 C++ 中使用 number of classes。要构建 UI,您可以使用 HTML/CSS 或使用 XAML

或者,如果适合您的需要,您可以继续使用 MFC。您可能永远不会构建一个带有 Multiple Document Interface 和选项卡式 UI 的 Metro 风格应用程序!

【讨论】:

    【解决方案2】:

    Metro Style 完全关乎用户体验和不同的 UI 布局。如果你想在你的应用程序中使用 Metro 风格的 UI,那么你需要在你的应用程序周围编写一个 WinRT 包装器来使用它。这并不意味着您的应用程序根本不会在 Windows 8 中运行,所有旧版应用程序仍然在 Windows 8 中运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多