久久亚洲精品天码av,午夜福利屄插穴,午夜福利视频91,亚欧美爽爽爽爽爽,亚洲欧美日韩色色图片,青青操在线观看,精品天堂麻豆av,无码av东京热,婷婷成人亚洲少妇

官方微信|手機(jī)版|本站服務(wù)|買家中心|行業(yè)動(dòng)態(tài)|幫助

產(chǎn)品|公司|采購|招標(biāo)

.net程序資源組件淺析

參考價(jià)面議
具體成交價(jià)以合同協(xié)議為準(zhǔn)
  • 公司名稱北京世紀(jì)長秋科技有限公司
  • 品       牌
  • 型       號
  • 所  在  地北京市
  • 廠商性質(zhì)其他
  • 更新時(shí)間2025/11/14 8:35:28
  • 訪問次數(shù)107
產(chǎn)品標(biāo)簽:

在線詢價(jià) 收藏產(chǎn)品 查看電話 同類產(chǎn)品

聯(lián)系我們時(shí)請說明是 制藥網(wǎng) 上看到的信息,謝謝!

  北京世紀(jì)長秋科技有限公司是從事工業(yè)自動(dòng)化軟件研發(fā)的,提供軟件開發(fā)、銷售、服務(wù)及工業(yè)自動(dòng)化系統(tǒng)集成等整套服務(wù),以創(chuàng)新為本的理念,為用戶提供量身定做的解決方案。   我們的團(tuán)隊(duì)由充滿創(chuàng)新活力、綜合素質(zhì)高的業(yè)內(nèi)精英組成,擁有經(jīng)驗(yàn)豐富的高級編程人員和現(xiàn)場工程技術(shù)人員,公司現(xiàn)分設(shè)工控工程部、軟件工程部、產(chǎn)品研發(fā)部、銷售部和技術(shù)支持部,致力于將整合的服務(wù)帶給用戶。    我們的自主產(chǎn)權(quán)軟件產(chǎn)品《世紀(jì)星通用工業(yè)自動(dòng)化監(jiān)控組態(tài)軟件》為國內(nèi)優(yōu)秀自動(dòng)化主流品牌軟件之一,本產(chǎn)品自1999年正式進(jìn)入市場,十年內(nèi)已有四萬多套軟件應(yīng)用于相關(guān)行業(yè),其中包括電力變電配電自動(dòng)化、電廠監(jiān)控、石油、化工、冶金、礦山、工業(yè)民用水處理、環(huán)保污水處理、儲備糧庫、鐵路隧道信號監(jiān)控、交通信號監(jiān)控、食品及飲料自動(dòng)化監(jiān)控等。    作為自動(dòng)化軟件領(lǐng)域的廠商,我們自成立以來專心從事自動(dòng)化軟件平臺的開發(fā)、銷售及技術(shù)服務(wù),與國內(nèi)外眾多硬件廠商和系統(tǒng)集成商保持長期、穩(wěn)定的合作關(guān)系。我們?yōu)橛脩籼峁┎煌瑢哟?、不同形式軟硬件一體化的解決方案,在前進(jìn)的同時(shí)不斷審視*,整合全線產(chǎn)品,打造優(yōu)質(zhì)、精準(zhǔn)的自動(dòng)化軟件,以滿足日益增長的多樣化用戶需求。   我們始終堅(jiān)持新理念、新科技,走進(jìn)用戶,貼近用戶,將用戶最重要的需求植入軟件研發(fā)服務(wù)的每個(gè)過程,為國內(nèi)工業(yè)自動(dòng)化市場提供、、的工業(yè)自動(dòng)化產(chǎn)品。   “創(chuàng)新科技,服務(wù)至上”是我們的企業(yè)理念,打造自動(dòng)化軟件領(lǐng)域中真正的民族品牌是我們的目標(biāo),在經(jīng)濟(jì)化不可阻擋的發(fā)展趨勢面前,我們會(huì)做得更好,成為您信息化道路上值得信賴的伙伴!
.net程序的不同 .net程序和以往的Windows應(yīng)用程序有一個(gè)顯著不同的地方:它的可執(zhí)行文件的組織方式,不像以往的應(yīng)用程序
.net程序資源組件淺析 產(chǎn)品信息

.net程序的不同


  .net程序和以往的Windows應(yīng)用程序有一個(gè)顯著不同的地方:它的可執(zhí)行文件的組織方式,不像以往的應(yīng)用程序。.net程序是由MSIL語言進(jìn)行組織,運(yùn)行時(shí)需要調(diào)用即時(shí)編譯器(JIT)編譯成本地匯編指令再來執(zhí)行,好比以前的VB程序一樣,是一個(gè)解釋執(zhí)行的過程。
  與指令相對應(yīng)的是數(shù)據(jù),一部分靜態(tài)數(shù)據(jù)或者說是資源,對它們來說.net程序和傳統(tǒng)程序也大大不同。本文主要對.net應(yīng)用程序資源的組成以及對它的操作進(jìn)行簡單分析。

托管資源說明


  應(yīng)用程序資源主要包括字符串、圖像、聲音、視頻等,目前的是前面兩種,本文主要是以在應(yīng)用bmp文件過程中的經(jīng)驗(yàn)做一下簡單說明。在過去,對應(yīng)于MFC,資源以.rc文件方式組織,程序在使用資源時(shí)使用它的資源ID號做為索引,用起來很不方便,而且如果想把資源從應(yīng)用程序做成一個(gè)單獨(dú)的資源dll文件,無論是制作還是使用,都是一件非常麻煩的事。
  .net程序在這些方面進(jìn)行了改進(jìn),首先在設(shè)計(jì)階段,它把各種資源統(tǒng)一保存在資源文件里,稱作托管資源。這里的資源文件包括兩種,一種是XML文件,一種是.resources文件。我們使用.net編程序,尤其是用VC.net編程,首要建立一個(gè)form窗體,在上面加一些菜單和按鈕,然后在上面添加一些圖標(biāo),這時(shí)對應(yīng)窗體名還另外生成了一個(gè).resx文件,這就是XML型資源文件。
  XML資源文件是由XML標(biāo)簽文本組成,用托管資源編輯器把這個(gè)窗體打開,就可以看到我們添加的圖標(biāo)和文本。另一種資源文件.resources是以二進(jìn)制方式存儲資源,它的體積要比XML資源文件小得多,這個(gè)文件在設(shè)計(jì)階段并不存在,只有VS在編譯.net程序時(shí),才會(huì)把XML資源文件轉(zhuǎn)化為.resources文件,同時(shí)VS還會(huì)把XML資源文件里的資源打包進(jìn)應(yīng)用程序和dll文件中。
  MS為什么要這么做,是否有必要做成兩種資源文件形式,還有MS為實(shí)現(xiàn)資源打包,還在VS中添加了像托管資源編譯器之類的小工具,這么不怕麻煩又是為什么?這所有的問題都指向一個(gè)深度的解釋:服從.net戰(zhàn)略需要。

托管資源的使用


  為方便使用這些資源,需要使用VS中包含的System::Resources程序集,其中操作.resx資源文件的類有ResXResourceSet()、ResXResourceReader()、ResXResourceWriter()。操作.resources文件的類有ResourceSet()、ResourceReader()、ResourceWriter()。這些類大體作用是為前兩個(gè)讀資源所用,后一個(gè)為寫資源用。
  這是直接操作資源文件,當(dāng)資源被打包進(jìn)exe或dll(在.net術(shù)語中稱為程序集)中之后,我們用ResourceManager類,這個(gè)類只能讀資源。這里要說明一下如何引用這些資源,用直接的方式是用名稱引用。舉個(gè)例子,如果有一個(gè)程序集a.dll,里面打包一個(gè)r.resx文件,r.resx里有一個(gè)  img.bmp文件,使用這個(gè)程序集里的img.bmp怎么辦?用幾句話便可以輕松解決:
  System::Resources::ResourceManager ^res = nullptr;
  Assembly ^Asm1 = Assembly::LoadFile("X://a.dll");
  res = gcnew System::Resources::ResourceManager("a.r",Asm1);
  Image ^m=dynamic_cast(res->GetObject("img"));

另類使用方法


  除了一些具體的細(xì)節(jié)可以查看msdn之外,再補(bǔ)充一些非常規(guī)的用法。
  把所有的資源都放進(jìn).resx文件再打包進(jìn)程序集固然是比較合乎邏輯的做法,如果要直接把資源(這里特別指的是bmp文件)放進(jìn)程序集,而不經(jīng)過打包這一步,是否可行?答案是沒有問題。事實(shí)上MS就做了這樣的事,在控件開發(fā)過程中,如果要給控件弄一個(gè)圖標(biāo),可以讓這個(gè)圖標(biāo)顯示在VS的工具箱中,那就必須要給這個(gè)圖標(biāo)(比如一個(gè)bmp文件)起一個(gè)和控件一樣的名字:(程序集名).(控件名).bmp,然后把這個(gè)圖標(biāo)設(shè)置為鏈接器的嵌入托管資源文件。具體設(shè)置的方法是,在解決方案資源管理器中,在項(xiàng)目名稱上點(diǎn)右鍵->屬性,在彈出的對話框左面一欄選擇鏈接器->輸入,然后在嵌入托管資源文件一欄中填寫要嵌入的資源,如果有多個(gè)資源要嵌入,中間用逗號分隔開。設(shè)置好之后,編譯,然后剩下的問題就是引用。這里,引用也不是用常規(guī)的方法,而是使用System::IO程序集中的Stream類,以及Assembly類的GetManifestResourceStream方法。具體的引用方法如下:
  Assembly ^assembly = Assembly::GetExecutingAssembly();
  System::IO::Stream ^strm =assembly->GetManifestResourceStream("img.bmp");
  Image ^m=System::Drawing::Image::FromStream(strm);
  這里僅僅是對bmp文件的直接嵌入做了說明,如果讀者感興趣的話,也可以試試別的資源。
  可以看出,這樣的方法更直接,但并沒有數(shù)據(jù)可以證明這種方法的速度和常規(guī)方法相比有多大差距,單從開發(fā)的角度來看,無論是嵌入還是引用,這種方法都是比較簡潔。當(dāng)然從管理的角度上這種做法不可取,效率和規(guī)范化經(jīng)常是一對不可調(diào)和的矛盾。

后記:開發(fā)工具的選擇


  下面介紹一下在開發(fā).net程序過程中經(jīng)常使用到的兩個(gè)工具,以及如何使用它們:
  個(gè)工具是VS自帶的MSIL反匯編工具,可以將程序集以樹形列表的方式顯示出來,也可以將程序集反匯編成IL指令文件。本文主要是用它查看托管資源的名稱,以便在其它地方引用。從文件->打開開始,選擇一個(gè)帶的托管資源的dll文件,點(diǎn)打開后,雙擊manifest節(jié)點(diǎn),彈出一個(gè)新窗口,上面就是關(guān)于各個(gè)引用程序集的說明,在其中查找.mresource,就可以找到托管資源文件名。
  第二個(gè)工具是大名鼎鼎的reflector,由一名MS的員工編寫,是反編譯和破解.net程序的工具,在本文中主要是用它看看是否已正確地把資源文件直接嵌入到程序集中。這個(gè)工具的使用更簡單,打開程序集文件后,直接點(diǎn)里面的Resources節(jié)點(diǎn)即可,如果已經(jīng)嵌入資源了的話,這個(gè)目錄下面直接就有這個(gè)資源。

在找 .net程序資源組件淺析 產(chǎn)品的人還在看

提示

×

*您想獲取產(chǎn)品的資料:

以上可多選,勾選其他,可自行輸入要求

個(gè)人信息:

清流县| 墨竹工卡县| 孟连| 翼城县| 文安县| 广州市| 吉安县| 扎赉特旗| 长顺县| 诏安县| 阿克苏市| 方城县| 富平县| 姜堰市| 江川县| 绥江县| 略阳县| 怀仁县| 和田县| 宁城县| 肥乡县| 运城市| 越西县| 琼结县| 昌乐县| 昭平县| 拉孜县| 新安县| 鄄城县| 临邑县| 营山县| 汾阳市| 岗巴县| 文登市| 镇江市| 呈贡县| 阳山县| 赣榆县| 江门市| 呈贡县| 博湖县|