我正在尝试查看是否可以从DLL中提取数据。我做了一些研究,发现你可以在DLL中存储应用程序资源。我找不到的是告诉我如何做到这一点的信息。有一篇MS文章解释了如何访问卫星DLL中的资源,但老实说我不知道这是否是我正在寻找的。 http://msdn.microsoft.com/en-us/library/ms165653.aspx我确实尝试了一些涉及的代码,但有一些“FileNotFoundExceptions”正在进行。
其余的DLL信息显示:类,对象等。我刚刚在我的Visual Studio项目中添加了DLL作为资源,并添加了“using”。如果有可能的话,我只是不知道如何理解它。
答案 0 :(得分:1)
如果dll是.net,则可以使用反射。
Using System.Reflection;
....
Assembly A= Assembly.LoadFrom(YouDllFileName);
string[] STA;
STA= A.GetManifestResourceNames();
// STA contains all the resource names in the dll
...
// to extract them
Stream str= A.GetManifestResourceStream(STA[I]);
// then, you can make that stream became a file if you wish
您还可以使用ildasm
提取.net程序集资源答案 1 :(得分:0)
根据你的描述,我不完全确定你可能会遇到什么,但是有几个一般的指示......
如果您要查找的是您已添加到项目中的文件,请执行以下操作:
右键单击解决方案资源管理器中的资源,点击属性并将“构建操作”设置为“嵌入式资源”。
对于字符串和图标,将.resx文件添加到项目中并将其插入其中。如果这就是您正在做的并且仍然遇到问题,请检查构建操作。
答案 2 :(得分:0)
由于您说您可以在using指令中添加DLL,因此您可以使用DLL公开的方法。如果您没有DLL的文档,那么您可能只需尝试使用对象浏览器来查看它提供的内容。
假设:
using MyDll;
你应该能够调用这样的方法:
string x = MyDll.SomeType.GetValue();
是你问的那个?
答案 3 :(得分:0)
有两种类型的dll。
要查找您的dll类型,您需要添加此dll作为参考。
在visual studio open项目中,右键单击引用(在解决方案资源管理器中)
然后“添加参考” - >浏览 - >添加你的DLL。
然后在参考文献中,你可以看到你的dll
右键单击他,然后在对象浏览中添加视图
如果在命名空间“b”中看到类似“c”的内容,则使用托管dll
在对象浏览器中,您可以了解很多关于您的dll(可能这比仅提取资源更重要)
此时你可以按照“Daniel Dolz”的方式回答你。