将桌面VC ++应用程序(使用WDK)移植到现代(metro)应用程序

时间:2014-10-09 11:44:12

标签: visual-c++ windows-store-apps microsoft-metro windows-8.1 desktop-application

你有一个巨大的代码库,包括许多解决方案,许多EXE项目,许多静态库项目(* .lib)等。用C ++编写的桌面窗口模式。 在这个代码库中,我使用了许多来自WDK(WIndows驱动程序工具包)的调用/ API,进行了许多低级调用。 我也广泛使用了win32 API。

我想将整个代码库移植到现代(metro)模式。

在将桌面C ++代码库(EXE,静态库等)移植到符合Modern(metro)标准时,我需要注意什么。

这种移植只会包含在现有桌面应用程序周围编写包装器,还是会涉及很多代码更改,例如将win32 API替换为现代(metro)模式的不同内容。 细节会有所帮助。

1 个答案:

答案 0 :(得分:1)

如果您的应用程序与系统有很多联系,我怀疑您的应用程序与许多低级WDK呼叫有关系,那么这些可能很麻烦。我怀疑你的应用程序需要保留为桌面应用程序,至少如果你打算通过商店分发它。

您的UI(除非它是DirectX)需要完全重写才能使用Windows应用商店应用提供的HTML或Xaml库。

如果您的核心逻辑与用户界面是分开的,并且如果它基本上是自包含的,那么它可能会直接带来。标准C ++库大多数都是允许的,但有些(特别是文件API)仅限于应用程序的安全上下文。

Windows应用商店应用程序是沙盒式的,并且不能作为一个整体访问系统。他们可以访问Win32 and COM for Windows Runtime apps中记录的Win32 API的子集。 Windows应用商店应用只能直接访问文件系统上的几个位置(读取对其安装目录的访问权限以及对其应用程序数据目录的读/写),并且只能通过使用StorageItem对象的经纪系统查看文件系统的其余部分。

所有这一切,如果这是您计划侧载而不是通过商店加载的企业应用,那么您可以使用Brokered Windows Runtime Component(BWRC)绕过沙箱并拥有完整的桌面权限。在这种情况下,您将为UI和BWRC编写Windows应用商店应用程序以包装现有桌面代码。