关闭

将多个图标文件编译到C#程序中

675人阅读 评论(0) 收藏 举报
分类:

一个exe或者dll文件可以包含多个图标资源,比如windows系统的user32.dll,win7下的C:\Windows\System32\imageres.dll文件,这些图标资源可以被应用于快捷方式和默认图标等,也可以作为一个打包的资源文件,这样你的程序就不用包含一大堆.ico文件了。

  在开始怎么创建之前,我们首先看看怎么查看exe或者dll里面的图标资源;

  如果你没有任何工具,可以随便打开一个快捷方式,选择“更改图标”,再选择“浏览”找到你要查看的资源文件,比如TTPlayer.exe,然后你就可以看到这个exe包含的可识别的图标了;

  使用Resource Hacker 工具。这个工具是一个windows资源文件查看与修改的工具,打开它,把你的文件拖进去,在“图标组”节点中就可以看到所有的图标:

  创建DLL资源文件

  OK,那怎么用Visual Studio创建资源文件呢?我曾经试过在C#项目的 Resource.resx中添加多个图标,但是编译之后用上面两种方法均无法查看到,后来只能转用C++项目来解决这个问题。

  打开VS,新建一个C++项目,“应用程序类型”选择 “DLL”;

  可以在“解决方案资源管理器”中看到一个“资源文件”目录,这个就是我们要添加图标文件的位置。将你的图标文件添加进来,注意最后编译出来的资源文件中,图标的顺序不是按照添加顺序排序的,而是按照这里显示的文件名排序,所以,你可以看到我添加了前缀“001”来达到排序目的;

  添加完之后,编译整个解决方案;

  打开解决方案myResource.sln文件所在目录下的Debug目录,里面的myResource.dll既是我们要的资源文件;

  打开项目文件myResource.vcproj文件所在目录下的Debug目录,里面有一个myResource.res,大小比上面的dll文件略小,这是一个“Win32资源文件”,里面也包含了图标文件,有什么用呢?继续往下看。

  将多个图标文件编译到C#程序中

  终于到主题了,我们最终的目的是要把资源都编译到exe文件中。有了上一步,就容易了

  打开你的项目,选择项目的“属性”页;

  找到“应用程序”,在“资源”组中,选中“资源文件”,点击旁边的浏览按钮找到上面我们编译出来的myResource.res文件(这是显示的是绝对路径,推荐改为相对路径),保存,编译项目;

  这个时候,查看你生成的exe文件,是不是有多个图标?并且第一个图标作为了exe的默认图标。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:141848次
    • 积分:2312
    • 等级:
    • 排名:第16207名
    • 原创:83篇
    • 转载:37篇
    • 译文:1篇
    • 评论:5条
    文章分类
    最新评论