Доступ к встроенным ресурсам в C++/CLI

Я работаю с C# некоторое время, и на этот раз я пытаюсь написать приложение.NET на C++. В C# я смог довольно легко получить доступ к управляемым ресурсам из кода, имя файла ресурсов работало как класс, поэтому, если бы у меня была строка с именем "abc" в файле ресурсов с именем cba.resx, я просто написал cba.abc возвращается со строкой из файла ресурсов. Даже intellisense работает с ним. То же самое работает с иконками и т. Д.

Можно ли сделать то же самое в C++, и если да, то как? Или, если нет, какой самый простой способ получить доступ к строкам / значкам в файлах ресурсов?

1 ответ

Решение

В 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"));
Другие вопросы по тегам