【摘要】
有時我們需要隱藏程序中的一些資源,比如游戲,過關后才能看到圖片,那么圖片就必須隱藏起來,否則不用玩這個游戲就可以看到你的圖片了,呵呵。本文就講述了如何把文件(比如圖片,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.IconGetIcon =(System.Drawing.Icon)resMan.GetObject("ico"); //獲取資源文件中的圖標 System.Drawing.ImageGetIcon =(System.Drawing.Image)resMan.GetObject("img"); //獲取資源文件中的圖片 |
取出資源文件中的內容,就可以直接使用了。這樣可以把一些內容或對象直接附加到EXE或DLL中,達到保密,或減少文件個數的目的。
新聞熱點
疑難解答