1

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

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

4

1 回答 1

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"));
于 2013-05-26T14:44:43.910 回答