.Net中把图片等文件放入DLL中,并在程序中引用

【摘要】

有时我们需要隐藏程序中的一些资源,比如游戏,过关后才能看到图片,那么图片就必须隐藏起来,否则不用玩这个游戏就可以看到你的图片了,呵呵。

本文就讲述了如何把文件(比如图片,WORD文档等等) 隐藏到DLL中,然后在程序中可以自己根据需要导出图片进行处理。

注:本站原创,转载请注明本站网址:http://www.beinet.cn/blog/

【全文】

第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()方法,就可以产生一个资源文件

详细代码如下(代码名为: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

然后就可以在WinForm中引用这个资源文件中的对象了,首先:




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中,达到保密,或减少文件个数的目的。

.Net中把图片等文件放入DLL中,并在程序中引用,布布扣,bubuko.com

时间: 2024-10-26 03:10:56

.Net中把图片等文件放入DLL中,并在程序中引用的相关文章

读取mysql中的特定列值放入页面的下拉框中

1.使用的技术:JSP,Spring JDBC(Mapper) 2.代码 2.1 接口 public interface IMeetingRoomDao { public List<Mrcap> selectCap(); public List<Mrfloor> selectFloor(); } 2.2 实现类 @Override public List<Mrcap> selectCap() { List<Mrcap> caplist = new Array

【转】【Android测试技巧】01. root后adb shell默认不是root用户时,如何将文件放入手机系统中

http://blog.csdn.net/wirelessqa/article/details/8624208 有些机器root后通过adb shell 后,默认不是root用户,需要输入 su才能切换到root,这样在执行批处理或想将文件放到手机系统中会有问题: 方法一:命令行 1 adb shell "su -c 'sleep 1'" 2 adb start-server 3 adb push tcpdump /data/local/tcpdump 方法二:用工具 adbd Ins

通过映射方式把本地文件放入服务器方法

如果希望把本地计算机上的一个文件,上传到某个服务器上,可以通过映射网络驱动器的方式把本地文件存入远程服务器.方法如下: 1. 把想要上传的文件放入一个文件夹下,文件夹取名最好简短,以便记忆和输入.然后右键点击该文件夹,选取“共享”-“特定用户”. 2. 下面这个窗口就是选择希望对哪些用户开放共享文件夹,默认有Administrator管理员用户和当前用户,可以直接点击“共享”,也可以另外添加其他本地用户,也可以修改相应的访问权限.这里不做修改,直接点击“共享”. 3. 点击“共享”之后,该文件夹

如何将Linux rm命令删除的文件放入垃圾箱

因为rm命令删除的文件是不会放入垃圾箱的,所以无法恢复,下面小编就给大家介绍一种方法,通过替换Linux rm命令的方法,从而将rm命令删除的文件放入垃圾箱. 方法: 1. 在/home/username/ 目录下新建一个目录,命名为:.trash 2. 在/home/username/tools/目录下,新建一个shell文件,命名为: remove.sh PARA_CNT=$# TRASH_DIR="/home/username/.trash" for i in $*; do ST

通过itunes把文件放入app的document目录

通过itunes把文件放入app的document目录 反向也是可以的. 仅仅需要添加plist中一项:Application supports iTunes file sharing,value YES即可!

输入两个整数,放入到a与b变量中去,如果a&gt;b就将a与b中的值进行交换,否则就不交换。

import java.util.Scanner; /** * @author 蓝色以太 输入两个整数,放入到a与b变量中去,如果a>b就将a与b中的值进行交换,否则就不交换. */ public class Change { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入两个整数:"); int a = sc.nextInt

&#39;QObject&amp; QObject::operator=(const QObject&amp;)&#39; is private——无法将自定义的QObject子类放入Qt容器(container)中

先贴出问题的代码: 1 #include<QCoreApplication> 2 classMyObject:publicQObject 3 { 4 public: 5 MyObject(QObject*parent =0): 6 QObject(parent) 7 { 8 } 9 private: 10 int m_id; 11 }; 12 int main(int argc,char*argv[]) 13 { 14 QCoreApplication a(argc, argv); 15 QL

去除富文本中的html标签及vue、react、微信小程序中的过滤器

在获取富文本后,又只要显示部分内容,需要去除富文本标签,然后再截取其中一部分内容:然后就是过滤器,在微信小程序中使用还是挺多次的,在vue及react中也遇到过 1.富文本去除html标签 去除html标签及?空格 let richText = ' <p style="font-size: 25px;color: white">&nbsp; &nbsp; &nbsp; &nbsp;sdaflsjf的丰富及饿哦塞尔</p><s

使用c#将多个文件放入文件夹中,并压缩下载

ZipClass.cs  这个是一个压缩文件的类,可直接复制使用,使用到的命名空间是 using System.IO;using ICSharpCode.SharpZipLib;using ICSharpCode.SharpZipLib.Checksums;using ICSharpCode.SharpZipLib.Zip; 请自行网上查找此压缩程序集下载使用 public class ZipClass { #region ZipFileDictory /// <summary> /// 递归