2012-07-05 169 views
1

我有一个十年前的MFC VC++桌面应用程序。应用程序的美妙之处在于它可以在15种以上的语言中使用Windows 2000到Windows 7。其多线程IPC和SSL在winsocket之上。VC++ Metro风格应用程序Windows

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

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

+0

Metro应用程序将*运行于任何低于Windows 8的任何设备上。实际上,您甚至无法在低于Windows 8的任何设备上创建Metro应用程序。但是,“传统”Win32和.Net应用程序可以在Windows 8上运行(具有一定的限制:例如驱动程序兼容性或安全问题)。 PS:为了所有的意图和目的,MFC很久以前就去世了;) – paulsm4 2012-07-05 21:11:45

回答

2

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

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

有一个蕴含(或可能的假设?)所有的Metro风格应用程序的WinRT应用。当然,WinRT打算用于建设Metro style applications。我可以想象构建传统的Win32应用程序,看起来像地铁应用程序 - 大方形活动瓷砖,延伸到可见桌面左侧和右侧的应用程序表面等。我不确定这些应用程序甚至会被视为“Metro风格”应用程序如果它们的构建方式与Metro应用程序相同。

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

这是否意味着Windows正朝着杀VC++或MFC的方向前进?

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

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

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

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

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

或者,如果你想两全其美,也许你甚至可以从用户界面单独程序的逻辑,然后建立一个MFC的皮肤和周围的共同的逻辑地铁皮肤

我必须对Winsock的替代API和MFC?

对于联网有number of classes您可以使用JavaScript,Visual Basic,C#和C++。对于构建用户界面,您可以使用HTML/CSS或使用XAML

或者如果您的需要符合您的要求,您可以继续使用MFC。你可能永远不会构建一个Metro风格的应用程序,它带有一个带有标签式UI的Multiple Document Interface

0

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

相关问题