.Net中把图片等文件放入DLL中,并在程序中引用
2007-07-02 21:25
309 查看
有时我们需要隐藏程序中的一些资源,比如游戏,过关后才能看到图片,那么图片就必须隐藏起来,否则不用玩这个游戏就可以看到你的图片了,呵呵。
本文就讲述了如何把文件(比如图片,WORD文档等等) 隐藏到DLL中,然后在程序中可以自己根据需要导出图片进行处理。
第1步:
我们要生成一个资源文件,先把要隐藏的文件放入到这个资源文件中
(资源文件大致可以存放三种数据资源:字节数组、各种对象和字符串)
首先创建一个类的实例:
ResourceWriter rw = new ResourceWriter("MyResource.resources");//括号里是文件名
用ResourceWriter类的AddResource()方法添加资源,有三个重载:
public void AddResource(string, byte[]);
public void AddResource(string, object);
public void AddResource(string1, string2);
前面的string是放入资源文件后的标识符,第二个参数就是要放的具体资源了。
资源添加后,调用ResourceWriter类的Generate()方法,就可以产生一个资源文件
然后就可以在WinForm中引用这个资源文件中的对象了,首先:
详细代码如下(代码名为:Res.cs):
using System;
using System.Resources;
using System.Drawing;
namespace test{
class test
{
static void Main()
{
Console.Write("aaa");
ResourceWriter rw = new ResourceWriter ( "MyResource.resources" ) ;
rw.AddResource("rsTest","Heool Word");
Icon ico = new Icon ( ".ico" ) ;
rw.AddResource("ico",ico);
Image img = Image.FromFile ("3.jpg") ;
rw.AddResource("img",img); rw.Generate ( ) ;
}
}
}
调用CSC res.cs, 生成EXE文件,再运行res.exe执行,就可以得到MyResource.resources文件了。
第2步:
下面就是要把生成的资源文件嵌入到最后生成的程序中,嵌入程序的编译命令:
csc /res:MyResource.Resources /target:winexe yourProgram.CS System.Resources.ResourceManager resMan = new ResourceManager ( "MyResource" , System.Reflection.Assembly.GetExecutingAssembly() );
生成这个文件的引用,"MyResource"是资源文件的文件名,必须以resources为扩展名。
接着在程序里:
string getFromRS = (string)resMan.GetString("rsTest"); //获取资源文件中的字符串
System.Drawing.Icon GetIcon = (System.Drawing.Icon)resMan.GetObject("ico"); //获取资源文件中的图标 System.Drawing.Image GetIcon = (System.Drawing.Image)resMan.GetObject("img"); //获取资源文件中的图片
取出资源文件中的内容,就可以直接使用了。
这样可以把一些内容或对象直接附加到EXE或DLL中,达到保密,或减少文件个数的目的。
来源网址:http://www.beinet.cn/blog/
本文就讲述了如何把文件(比如图片,WORD文档等等) 隐藏到DLL中,然后在程序中可以自己根据需要导出图片进行处理。
第1步:
我们要生成一个资源文件,先把要隐藏的文件放入到这个资源文件中
(资源文件大致可以存放三种数据资源:字节数组、各种对象和字符串)
首先创建一个类的实例:
ResourceWriter rw = new ResourceWriter("MyResource.resources");//括号里是文件名
用ResourceWriter类的AddResource()方法添加资源,有三个重载:
public void AddResource(string, byte[]);
public void AddResource(string, object);
public void AddResource(string1, string2);
前面的string是放入资源文件后的标识符,第二个参数就是要放的具体资源了。
资源添加后,调用ResourceWriter类的Generate()方法,就可以产生一个资源文件
然后就可以在WinForm中引用这个资源文件中的对象了,首先:
详细代码如下(代码名为:Res.cs):
using System;
using System.Resources;
using System.Drawing;
namespace test{
class test
{
static void Main()
{
Console.Write("aaa");
ResourceWriter rw = new ResourceWriter ( "MyResource.resources" ) ;
rw.AddResource("rsTest","Heool Word");
Icon ico = new Icon ( ".ico" ) ;
rw.AddResource("ico",ico);
Image img = Image.FromFile ("3.jpg") ;
rw.AddResource("img",img); rw.Generate ( ) ;
}
}
}
调用CSC res.cs, 生成EXE文件,再运行res.exe执行,就可以得到MyResource.resources文件了。
第2步:
下面就是要把生成的资源文件嵌入到最后生成的程序中,嵌入程序的编译命令:
csc /res:MyResource.Resources /target:winexe yourProgram.CS System.Resources.ResourceManager resMan = new ResourceManager ( "MyResource" , System.Reflection.Assembly.GetExecutingAssembly() );
生成这个文件的引用,"MyResource"是资源文件的文件名,必须以resources为扩展名。
接着在程序里:
string getFromRS = (string)resMan.GetString("rsTest"); //获取资源文件中的字符串
System.Drawing.Icon GetIcon = (System.Drawing.Icon)resMan.GetObject("ico"); //获取资源文件中的图标 System.Drawing.Image GetIcon = (System.Drawing.Image)resMan.GetObject("img"); //获取资源文件中的图片
取出资源文件中的内容,就可以直接使用了。
这样可以把一些内容或对象直接附加到EXE或DLL中,达到保密,或减少文件个数的目的。
来源网址:http://www.beinet.cn/blog/
相关文章推荐
- .Net中把图片等文件放入DLL中,并在程序中引用
- .Net中把图片等文件放入DLL中,并在程序中引用
- .Net中把图片等文件放入DLL中,并在程序中引用
- .Net中把图片等文件放入DLL中,并在程序中引用
- .Net中把图片等文件放入DLL中,并在程序中引用
- .Net中把图片等文件放入DLL中
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- C#调用MFC程序DLL库——MFC项目DLL生成问题、DLL引用链问题、DLL读取配置文件路径问题
- .Net中对资源文件的获取(获取嵌入到程序中的图片资源)
- 未能添加对XX的引用,这不是一个有效的程序集或COM组件,只有具有扩展名dll的程序集和COM组件才能被引用。请确保该文件可访问,并且 是一个有效的程序集或COM组件
- .net编译时一直提示引用了找不到的dll文件
- 让你的.NET程序兼容不同版本的Dll文件。
- C# 引用 其它程序的写的dll 文件
- .net winform 从资源文件中引用图片资源
- 让你的.NET程序兼容不同版本的Dll文件
- 让你的.NET程序兼容不同版本的Dll文件
- 在DLL组件中附加图片等资源,并在程序中引用_2
- C#WinForm程序引用的Dll文件都会根目录下我想放在一个专门的DLL文件夹下
- 编程时如果只是调用其它程序打开文件不必引用程序dll,调用系统shell执行更方便
- .net程序如何把引用的dll放到子目录里面