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

相关问题