VC ++ Metro风格应用程序Windows

我有一个十年前的MFC VC ++桌面应用程序。 美的应用程序是从Windows 2000到Windows 7,超过15种语言。 它的multithreadingIPC和SSL上的winsocket。

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

是否有可能为所有的Windows版本保留相同的代码基础? 我有用于winsock和MFC的替代API吗? 在HTML5中编写应用程序是否强制?

Solutions Collecting From Web of "VC ++ Metro风格应用程序Windows"

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

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

有一个暗示(或可能是假设?),所有Metro风格的应用程序都是WinRT应用程序。 当然WinRT是用于构建Metro风格的应用程序 。 我可以想象构建传统的Win32应用程序看起来像地铁应用程序 – 大方形活动瓷砖,应用程序表面拉伸到可见桌面的左侧和右侧等。我不确定这些真的被认为是“Metro风格”的应用程序甚至如果他们是建立在一个地铁应用程序相同的风格。

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

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

绝对不。 在基于x86系统的Windows 8的桌面环境中,MFC应用程序将运行得很好。 MFC应用程序不能在基于ARM的Windows 8系统上运行,但是MFC应用程序不能运行的地方很多。

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

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

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

如果您想要支持基于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 ++中的许多类 。 为了构建用户界面,您可以使用HTML / CSS或使用XAML 。

或者,如果这符合您的需求,则继续使用MFC。 你可能永远不会构建一个Metro风格的应用程序,它具有带有标签式UI的多文档界面!

Metro风格是关于用户体验和不同的用户界面布局。 如果你想在你的应用程序中使用metro样式的UI,那么你需要在你的应用程序中编写一个WinRT包装来利用它。 这并不意味着你的应用程序在Windows 8中完全不能运行,所有的精简应用程序仍然在Windows 8中运行