在C ++ / CLI中访问嵌入式资源

Civ*_*Dav 1 .net c# resx c++-cli

我已经使用C#一段时间了,这次我试图用C ++编写.NET应用程序。在C#中,我可以很容易地从代码中访问托管资源,资源文件的名称就像一个类一样工作,因此,如果在名为cba.resx的资源文件中有一个名为“ abc”的字符串,只需编写cba.abc与资源文件中的字符串一起返回。甚至intellisense也可以使用它。同样的东西也可以使用图标等。

是否可以在C ++中做同样的事情,如果可以,怎么做?否则,访问资源文件中的字符串/图标的最简单方法是什么?

Tom*_*get 5

在Visual Studio中,C#项目具有resx文件设计器和属性类生成器。C ++ / CLI项目仅获得resx文件设计器。两者都获得了将编译后的资源嵌入到程序集中的构建步骤。

您可以自己编写一个Properties类,或者只在需要它们的代码中访问资源,如下所示:

auto resourceAssembly = Reflection::Assembly::GetExecutingAssembly();
// .Resources is the name generated by resxgen, e.g., from the input file name Resources.resx
auto resourceName = resourceAssembly->GetName()->Name + ".Resources"; 
auto resourceManager = gcnew Resources::ResourceManager(resourceName, resourceAssembly);
auto String1 = cli::safe_cast<String^>(resourceManager->GetObject("String1"));
Run Code Online (Sandbox Code Playgroud)