【发布时间】:2013-02-26 10:54:53
【问题描述】:
我只是想查看资源名称,但没有出现任何内容。
我在 Visual Studio 2010 中制作并编译了一个 C++/CLI(托管)DLL,并添加了一些资源文件作为测试(一个图标和一个位图)。我检查了 PE Explorer,资源肯定在那里。
我的简单代码:
Assembly asm = Assembly.LoadFrom("C:\\test.dll");
String[] res = asm.GetManifestResourceNames();
我知道 DLL 已加载,因为当我调试时,我可以看到“asm”变量中的所有信息。我也可以从 DLL 导入数据(使用 MEF)。
因此,DLL 具有资源,并且代码肯定正在加载程序集。但是为什么我的 'res' 变量总是返回空字符串列表呢?
编辑: 我创建了一个 C# 类库 (.dll),其中包含仅用于测试的资源。现在它起作用了!但仍然在我的 C++/CLI DLL 中没有出现资源。不知何故,它们在 DLL 中,但代码无法访问它(仅在 C++ DLL 中)。也许它与托管/非托管代码有关,但由于我是用 CLR 编译它,所以情况似乎并非如此。有什么建议吗?
解决方案 我懂了!以防万一有人需要。
根据这些主题:
在 C++/CLI 项目中嵌入资源
和
http://bytes.com/topic/net/answers/571530-loading-markup-xamlreader-load-resource-file#post2240705
问题正是 C++/CLI 的问题。您必须在项目属性的链接器选项卡下的输入项中添加它。现在它似乎工作正常。谢谢
【问题讨论】:
标签: resources