2012-06-18 42 views
2

我有一个C++/GDI库,我尝试移植到C++/Metro风格。C++ Metro风格应用程序中的资源

功能FindResource/LoadResource /(...)不在Metro风格的应用程序可用,这个主题的文件说:

Dev Center - Metro style apps > Docs > Developing games > Developing Metro style DirectX and C++ apps > Defining app resources

这种材料不但可用。此占位符主题提供了 作为可能包含在以后的 版本中的文档示例。

有没有人发现任何其他信息来源有关如何处理C++ Metro风格应用程序中的资源?

我正在寻找一种方法来将字体文件作为资源存储在我的应用程序包中,并以编程方式将其作为流加载。

+2

似乎没有任何直接对应于Win32风格的资源。至少从我目前看到的(当然,不是很多)本地存储中正在做的更大的资源,以及本地设置中较小的资源。 –

+0

您不能将字体文件存储在Metro中的资源中。 Metro使用基于文件的部署模型,即应将字体文件添加到您的项目中,并将其作为构建的一部分与您的应用程序打包在一起。 – Denis

回答

4

Metro有一个可用于访问资源的ResourceManager类。下面是一个例子来从资产文件夹中的文件 -

auto file = ResourceManager::Current->MainResourceMap->GetSubtree("Files")->GetValue("Assets/Logo.png"); 

这里是一个Metro应用来访问资源的链接 -

http://msdn.microsoft.com/en-us/library/windows/apps/hh694557.aspx

+0

恐怕我不能使用这个解决方案,因为[ResourceManager是一个来自.Net Framework的类](http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.aspx),而我开发一个本地C++库。 –

+0

WinRT有一个ResourceManager类。我的文章中的代码是使用XAML和C++/CX创建的Metro应用程序的摘录。 – Superman

+0

你是对的,谢谢澄清。 –

2

检查this article有关的WinRT组件的DLL。

显然和基本只在这篇文章的作者:

这里有趣的是,C++应用程序是基于XAML。 C++中没有更多.RC和resource.h文件(适用于metro)。

希望能回答你的问题。

+0

这走向了正确的方向,尽管它留下了许多未回答的问题。在.Net中,您可以使用XAML文件中的资源ID,并且还可以使用ResourceManager类以编程方式访问这些资源。我不清楚如何在C++/Metro风格的应用程序中实现相同的功能 –

相关问题