托管资源全攻略

2016-01-29 11:59 7 1 收藏

托管资源全攻略,托管资源全攻略

【 tulaoshi.com - C语言心得技巧 】

托管资源全攻略

作者:caeser2

下载源代码

本文内容适用于所有使用.net v1.1及以上框架的语言。

前传1:提出问题(急于了解正式内容的读者请转到下面的正传部分^_^)

  前段时间写了一篇题为“VC.NET轻松实现按钮控件自绘”的文章,其中按钮按下时的效果是由一张图片呈现的。这时问题就来了,最初我将该图片加入资源列表(.rc)中,然后使用下面的2个读取资源的方法;编译通过,可执行时程序抛出异常,提示找不到资源文件。

//方法1,从指定的hinstance中名为bitmapName的资源创建Bitmap对象public: static Bitmap* System::Drawing::Bitmap::FromResource(IntPtr hinstance,String* bitmapName);//方法2,使用构造函数从指定的type类中提取的resource资源初始化Bitmap对象public: System::Drawing::Bitmap::Bitmap(Type* type,String* resource);
前传2:分析问题

  接着我就犯难了,在论坛上提出该问题,没有得到建设性的回答,为了赶时间只好匆匆将图片和程序放在一起发布了。事后回想一下心里挺不是滋味,将分离的资源文件和程序文件一起发布,搞的目录里乱七八糟很不好看,为什么加入资源的图片不能用呢?会不会是资源没有打包进.exe文件呢?于是我用2进制查看工具打开资源图片和.exe文件,做了下对比,结果发现资源图片已打包进.exe文件:

  资源虽已打包进.exe文件,可是除了上面提到的那两个方法,似乎再没有其它读取内部资源的函数了,那怎么办呢?

前传3:看到解决问题的曙光

  打开MSDN,查找有关"资源"的索引,看了半天,最后终于弄明白了,原来.net框架对通过资源编辑器(.rc)打包进程序的资源不再提供支持,而改用一种名为"托管资源"的资源。那么这种资源与普通的非托管资源有何异同?既然不能使用Visual Stdio 200x提供的资源编辑器(.rc)打包资源,这种资源又该怎么打包进程序?打包成功后又应该怎样去使用呢?

正传1:什么是托管资源

  资源可以理解为是在逻辑上由应用程序部署的任何非可执行数据,托管资源其本质也大抵如此。那么mfc使用的rc资源和.net使用的托管资源有什么区别呢?请看下表:
  资源类型 Windows支持度(注1)

索引方式

可否打包"对象" 独立于.exe打包的难易度 资源的部署 其它 .rc资源

95/98/me/nt/2000及以上

依靠资源ID找到资源

不可以

使用纯资源DLL,比较麻烦

由程序员决定,管理混乱

还没想好:)

.net托管资源

目前还没有支持的

取消资源ID,改为依靠资源名,也可以依靠资源的值(内容)

可序列化的就可以

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

使用专用的资源文件,很简单

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

由程序集统一管理(注2)

 注1:比如说,对一个文件夹右键选"属性"-"自定义"-"更改图标",在"浏览"中选择.exe文件,如果被系统支持则会读出.exe中打包的所有图标,反之只能读出1个;注2:有关程序集的讨论超出了本文的范围,感兴趣的读者可以参考MSDN;

  从上表可以看出,虽然托管资源的本质概念和以往的"资源"没有区别,但是使用方式却被彻底颠覆了。托管资源将一个资源视为一个对象,对资源的查找引用不再使用资源ID,改为资源名,就像使用一个对象一样;反过来给可序列化的任意对象起个好记的名字就可以当作资源保存起来。.net托管资源的打包方式有两种,分别是打包进程序的资源和独立的资源文件。独立资源文件的组织方式也有两种形式,一种

来源:http://www.tulaoshi.com/n/20160129/1484167.html

延伸阅读
标签: 手机游戏
《赤壁》新手全攻略            攻略如下:         一、选择国家职业         新人进游戏,第一个问题就是选择国家,一共三国:魏吴蜀。我们都知道三国演义中魏最强大,吴其次,蜀国最弱所以才会联吴抗...
《泰坦之旅》全攻略 会员:crosier原创 前言 1、本图文攻略包含了泰坦之旅原版及资料片不朽王座的全部剧情和任务内容,希望对喜欢玩这款游戏的朋友有所帮助。攻略共分为五幕,包括92幅地图,除主线任务外,还有全部支线任务69个。 第一幕 希腊:24幅地图,17个支线任务。 第二幕 埃及:17幅地图,11个支线任务。 第三幕 东方:21幅地...
标签: 美容
夏季无声无息的就要到来了,想起那些穿着性感妩媚的辣妹,心中真的有点着急了。我们不能再无动于衷,网上搜索各种减肥的妙招。减肥药哦,针灸哦,穴位按摩哦等等。凭借10年的运动经验我还是推荐大家试试运动吧。运动的好处不言而喻,所以只要你动...
《辐射4》88号超级避难所建造赏析与存档分享 存档下载:点击进入。 本人亲力亲为自建的避难所,耗时数周,从无到有,每一面墙每一块砖一直到每一盏灯!今天拿出来给大家分享!精简装修,内部招募了100多名NPC,修整了细节,经过反复推敲审美,加入了生活元素,更新了地下通道和设施,加装了一部电梯方便上下1-4楼,目前上下共7层,这不是辐射...
《拳皇14》DLC新增4角色连招视频教学合集 凡妮莎 《拳皇》历代BOSS介绍 大蛇 格斗技: 不明 出生地: 不明 初次登场: KOF97 天国神之主 远古时代已经存在并一直守护着地球,被称为地球意思的无肉身灵魂体,大蛇一族之长。因为人类的快速发展被大蛇视为不自然,认为人类已不再是自然的一部分,继续存在下去会破...

经验教程

121

收藏

82

精华推荐

FIFA 17全攻略

FIFA 17全攻略

帅气小捌招人迷

双截龙4全攻略

双截龙4全攻略

南柯一梦

花卉拍摄全攻略

花卉拍摄全攻略

abc13402250010

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部