【发布时间】:2012-12-03 18:10:28
【问题描述】:
我需要 zlib 库来开发 Windows Store 应用程序。
有人将 Win32 zlib 项目转换为 WinRT 了吗?
谁能描述将现有的win32静态库项目转换为winRT的步骤?
【问题讨论】:
标签: c++ visual-studio-2012 zlib windows-store-apps windows-store
我需要 zlib 库来开发 Windows Store 应用程序。
有人将 Win32 zlib 项目转换为 WinRT 了吗?
谁能描述将现有的win32静态库项目转换为winRT的步骤?
【问题讨论】:
标签: c++ visual-studio-2012 zlib windows-store-apps windows-store
Visual C++ 已经是 WinRT 开发支持的语言,如果您不想使用 zlib,只需将其与您的解决方案一起编译即可。没有什么可以阻止您在 WinRT 中重用标准 ISO C 和 C++ 库,如果您使用 C++ 语言,您可能必须将库的某些方面公开为 WinRT 组件,但前提是您需要与设施交互像 XAML 或其他 WinRT 语言,但这应该是在公园里散步。不是一件非常困难的事情。
在 WinRT 中支持 C++ 的全部意义在于允许将主要是本机应用程序的现有生态系统移植到 Windows 应用商店。 zlib 也不例外。不支持非标准 ISO C 和 C++(例如套接字),但您可以插入替代方案,只需检查您使用的库是否具有某种可移植性支持。
【讨论】:
Store > Create App Package 验证了该包。它成功了!不过还没有测试功能。
inflate_fast() 函数。对于 ARM,我使用了最长匹配的 C 版本,而不是使用 inflate_fast(),使用 inflate()。如果我们有 inffasx64.asm 和 gvmat64.asm 的等效 ARM 汇编代码,那就太好了。
WinRT 对于现有的 C 库函数非常有限。这意味着几乎所有跨平台 C 库(AFAIK,我不是 WinRT 开发人员)都无法用于该目标。
对于zlib的情况,还有一个替代方案:see this question
编辑:为了澄清我上面所说的内容,我挖掘了 WinRT 不存在的所有 CRT 函数的列表,您可以找到 here。只要 zlib 或任何其他 C 库不依赖于这些函数调用,您就应该能够使用 WinRT 工具来构建该 C 库。我什至找到了project file for zlib on winrt by the Ogre team here,不知道它对你有多大用处。
【讨论】:
您可以查看this WinRT (Un)Zip component。它已经在生产代码中使用。
请参阅里面的单元测试,了解如何使用该组件。它可以在包括 ARM 在内的所有 WinRT 架构上编译。但它没有针对 ARM 的自定义 asm。
【讨论】: