.Net中把圖片等檔案放入DLL中,並在程式中引用

來源:互聯網
上載者:User

標籤:winform   style   blog   class   java   tar   

【摘要】

有時我們需要隱藏程式中的一些資源,比如遊戲,過關後才能看到圖片,那麼圖片就必須隱藏起來,否則不用玩這個遊戲就可以看到你的圖片了,呵呵。
本文就講述了如何把檔案(比片,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中,達到保密,或減少檔案個數的目的。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.