【摘要】
有時(shí)我們需要隱藏程序中的一些資源,比如游戲,過關(guān)后才能看到圖片,那么圖片就必須隱藏起來,否則不用玩這個(gè)游戲就可以看到你的圖片了,呵呵。本文就講述了如何把文件(比如圖片,Word文檔等等) 隱藏到DLL中,然后在程序中可以自己根據(jù)需要導(dǎo)出圖片進(jìn)行處理。
注:本站原創(chuàng),轉(zhuǎn)載請(qǐng)注明本站網(wǎng)址:http://www.beinet.cn/blog/
【全文】
第1步:我們要生成一個(gè)資源文件,先把要隱藏的文件放入到這個(gè)資源文件中(資源文件大致可以存放三種數(shù)據(jù)資源:字節(jié)數(shù)組、各種對(duì)象和字符串)
首先創(chuàng)建一個(gè)類的實(shí)例:ResourceWriter rw = new ResourceWriter("MyResource.resources");//括號(hào)里是文件名用ResourceWriter類的AddResource()方法添加資源,有三個(gè)重載:
public void AddResource(string, byte[]); public void AddResource(string, object); public void AddResource(string1, string2); |
前面的string是放入資源文件后的標(biāo)識(shí)符,第二個(gè)參數(shù)就是要放的具體資源了。資源添加后,調(diào)用ResourceWriter類的Generate()方法,就可以產(chǎn)生一個(gè)資源文件
詳細(xì)代碼如下(代碼名為: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 ( ) ; } } } |
調(diào)用CSC res.cs, 生成EXE文件,再運(yùn)行res.exe執(zhí)行,就可以得到MyResource.resources文件了。
第2步:下面就是要把生成的資源文件嵌入到最后生成的程序中,嵌入程序的編譯命令:
csc /res:MyResource.Resources /target:winexe yourPRogram.CS |
然后就可以在WinForm中引用這個(gè)資源文件中的對(duì)象了,首先:
System.Resources.ResourceManager resMan = new ResourceManager ( "MyResource" , System.Reflection.Assembly.GetExecutingAssembly() ); |
生成這個(gè)文件的引用,"MyResource"是資源文件的文件名,必須以resources為擴(kuò)展名。接著在程序里:
string getFromRS =(string)resMan.GetString("rsTest"); //獲取資源文件中的字符串 System.Drawing.IconGetIcon =(System.Drawing.Icon)resMan.GetObject("ico"); //獲取資源文件中的圖標(biāo) System.Drawing.ImageGetIcon =(System.Drawing.Image)resMan.GetObject("img"); //獲取資源文件中的圖片 |
取出資源文件中的內(nèi)容,就可以直接使用了。這樣可以把一些內(nèi)容或?qū)ο笾苯痈郊拥紼XE或DLL中,達(dá)到保密,或減少文件個(gè)數(shù)的目的。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注