【问题标题】:Reading from an embedded resource stream从嵌入式资源流中读取
【发布时间】:2010-04-16 11:56:12
【问题描述】:

我一直在尝试访问名为“Images.resx”的嵌入式 RESX 文件中名为“IndexPointer.jpg”的图像资源。 GetManifestResourceNames() 返回单个值 - SCtor.Images.resources"。

Assembly::GetExecutingAssembly()->GetManifestResourceStream("SCtor.Images.resources.IndexPointer.jpg")

只返回一个空指针。显然,我弄错了清单名称。什么是正确的?

【问题讨论】:

  • 如果你想知道为什么没有答案,这是因为没有人在 C++/CLI 中做这样的事情。在 C# 中重现问题并在任何 C# 论坛中提问。比翻译成 C++/CLI。
  • 嗯,据我所知,这段代码的 c# 和 C++/CLI 版本的唯一区别是语法。

标签: c++-cli stream resources


【解决方案1】:

使用 Reflector 打开程序集以找出正确的资源名称。

【讨论】:

  • 不好 - 它只显示我已经知道的,ResourceName 和其中图像资源的名称。
【解决方案2】:

好吧,我终于想通了。奇怪的是,我记得遇到(并尝试)了可行的解决方案并无视它。无论如何,我用我的程序集的资源实例化了一个 ResourceManager 对象,并使用它的 GetObject 方法来提取嵌入的图像。

ResourceManager^ resources = gcnew ResourceManager("<rootNamespace>.<resourceName>", Assembly::GetExecutingAssembly());
Bitmap^ Image1 = gcnew Bitmap(dynamic_cast<Image^>(resources->GetObject("<nameOfTheImageResourceWithoutItsExtension>")));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2011-10-30
    • 2020-06-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多