2012-07-05 159 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

相關問題