1

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

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

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

4

2 回答 2

2

最近我读到 win 8 Metro 风格我们将无法运行现有的应用程序

我发现从Windows 运行时 (WinRT)的角度考虑事情更容易。基于 ARM 的 Windows 8 系统将支持 WinRT 程序。基于 x86 的 Windows 8 系统能够运行 WinRT 程序现有的 Win32 程序。

暗示(或者可能是假设?)所有 Metro 风格的应用程序都是 WinRT 应用程序。当然,WinRT 旨在用于构建Metro 风格的应用程序。我可以想象构建看起来像 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++,如果你愿意,你可以使用 C++构建 Metro 风格的应用程序,你只需要遵循 Metro “风格”。

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

这取决于您所说的“所有 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++中的许多类。要构建 UI,您可以使用HTML/CSS或使用XAML

或者,如果符合您的需要,您可以继续使用 MFC。您可能永远不会构建具有多文档界面和选项卡式 UI 的 Metro 风格应用程序!

于 2012-07-06T04:43:43.323 回答
0

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

于 2012-07-06T04:18:28.480 回答