У меня есть библиотека элементов управления, в которую я добавил файл .resx (ImageResources.resx). Он содержит два изображения .png, которые я впоследствии добавил.
В той же библиотеке у меня есть элемент управления, который загружает пару изображений для создания какого-либо пользовательского чертежа, но я не могу загрузить ресурсы:
void GTableLayoutPanel::SetBorderImagesFromManifest(String^ topLeftCornerImageName, String^ topImageName)
{
// Grab the assembly this is being called from
Assembly^ assembly = Assembly::GetExecutingAssembly();
// Grab the images from the assembly
Stream^ stream = assembly->GetManifestResourceStream(topLeftCornerImageName);
Image^ topLeftImage = System::Drawing::Image::FromStream(stream);
stream = assembly->GetManifestResourceStream(topImageName);
Image^ topImage = System::Drawing::Image::FromStream(stream);
// Update the internal store from the supplied images
SetBorderImages(topLeftImage, topImage);
}
... дает мне ошибки, жалуясь на то, что stream
имеет значение null, что говорит о том, что мой вызов на GetManifestResourceStream
завершается неудачно.
Изображения называются group_box_top.png
и group_box_top_left.png
, и я вызываю загрузчик изображений следующим образом:
SetBorderImagesFromManifest("group_box_top_left.png", "group_box_top.png");
Я также пробовал:
SetBorderImagesFromManifest("group_box_top_left", "group_box_top");
... потому что файлы появляются в файле .resx без расширений .png, но выдает ту же ошибку.
Я пропустил здесь шаг?
[Редактировать] Я попробовал предложение в этой последней ссылке, и я получил:
MyControlsLib.ImageResources.resources
Итак, я попробовал ссылки:
Stream^ strm1 = assembly->GetManifestResourceStream("MyControlsLib.ImageResources.resources.group_box_top_left");
Stream^ strm2 = assembly->GetManifestResourceStream("MyControlsLib.ImageResources.resources.group_box_top_left.png");
Stream^ strm3 = assembly->GetManifestResourceStream("MyControlsLib.ImageResources.group_box_top_left");
Stream^ strm4 = assembly->GetManifestResourceStream("MyControlsLib.ImageResources.group_box_top_left.png");
... все из которых возвращают nullptr: - /