0

嗨有一個龐大的代碼庫,包括很多的解決方案,很多EXE項目,許多靜態庫項目(* .LIB)等。用C++編寫的桌面 windows模式。 在這個代碼庫中,我使用了許多來自WDK(WIndows驅動程序工具包)的調用/ API,進行許多低級調用。 另外我已經廣泛使用win32 API。移植桌面VC++應用程序(使用WDK)現代(地鐵)應用

我想端口這整個代碼庫現代(地鐵)模式。

在將我的桌面C++代碼庫(EXEs,靜態庫等)移植到兼容Modern(metro)時,我需要注意哪些事情。

這個移植只是爲現有的桌面應用程序編寫一個包裝,還是會涉及很多代碼更改,比如用現代(metro)模式替換win32 APIs。 詳情將對您有所幫助。

回答

1

如果你的應用程序有很多聯繫的系統,我懷疑你確實有許多低級別WDK調用,那麼這些可能是麻煩的。我懷疑你的應用程序需要保留爲桌面應用程序,至少如果你打算通過商店分發它。

你的UI(除非它是DirectX的)將需要徹底改寫使用可用於Windows Store應用程序的HTML或XAML中庫。

如果你的核心邏輯是從UI分開,如果它主要是自包含的,然後它可能是直截了當帶過來。標準C++庫大多都是允許的,但有些(特別是文件API)僅限於應用程序的安全上下文。

的Windows Store應用程序沙箱和訪問該系統作爲一個整體的限制。他們可以訪問在Win32 and COM for Windows Runtime apps中記錄的Win32 API子集。 Windows Store應用程序只能直接訪問文件系統上的幾個位置(讀取其安裝目錄的訪問權限並讀取/寫入其應用程序數據目錄),並且只能通過使用StorageItem對象的經紀系統查看文件系統的其餘部分。所有這一切說,如果這是一個企業應用程序,你打算側裝,而不是通過商店加載,然後你可以使用一個Brokered Windows Runtime Component(BWRC)繞過沙盒,並具有完整的桌面權限。在這種情況下,您需要爲UI和BWRC編寫一個Windows應用商店應用來包裝現有的桌面代碼。

+0

謝謝。如果我的應用程序沒有任何UI,而是一個命令行應用程序,那麼我想我可以使用BWRC。我對嗎 ? – codeLover 2014-10-09 15:53:24

+0

Windows應用商店應用程序是基於GUI的即時應用程序。如果你想留在命令行應用程序,那麼它將保持作爲桌面應用程序。如果你想添加一個GUI,那麼你可以使用一個BWRC來從XAML或HTML GUI調用命令行應用程序(我們是它的膽量) – 2014-10-09 16:05:07

相關問題