C#加载资源的难题!!!标题要长---------------------------------标题------------------------标题要长

weizhuangwen 2014-03-18 03:00:47
众所周知,在.NET中在制作软件的过程中,可以加载资源文件,然后生成一个内嵌有资源文件的EXE可执行文件。

现在我在公司遇到这么一个难题:我制作了一个EXE文件(已经编译生成了)。我要把未知数量的图片X,加载进这个EXE中,该怎么做?
难题是:这个EXE是编译以后,而且是已经给客户了的。客户要通过软件界面选择N张图片后,加载入EXE中。EXE在下次运行时候已经包含了这些图片的资源文件。

先放100分,有办法解决再给400分。
...全文
259 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
weizhuangwen 2014-03-21
  • 打赏
  • 举报
回复
引用 15 楼 rutstyle 的回复:
好吧,那我就把我的惊天地泣鬼神的武林绝学传授给你—— 你可以通过一个应用程序域或使用反射来加载这个EXE文件,将EXE加载的图片集合序列化成二进制数组,将二进制数组按字节追加到EXE文件的末尾,下次启动时,从EXE文件末尾解析二进制数组还原图片显示。
最后还是没用到反射技术。我改造了一下,程序启动后在当前路径复制EXE自身(副本.EXE),然后把图片追加到(副本_.EXE)末尾,然后通过调用DOS命令删除自身,修改(副本.EXE)名称为原EXE名称。
BenBenBears 2014-03-20
  • 打赏
  • 举报
回复
踏雪的idea如果是在线补丁的话,理论上是可行的。这样就没有额外的文件。
风一样的大叔 2014-03-20
  • 打赏
  • 举报
回复
楼主看到过微软升级补丁是直接把原来的安装程序打开往里面放的吗?可以安装好以后再以补丁的形式加进去
tcmakebest 2014-03-20
  • 打赏
  • 举报
回复
动态资源还用 exe 当然不行了,还是生成一个压缩包来用现实一点。
weizhuangwen 2014-03-20
  • 打赏
  • 举报
回复
引用 9 楼 rutstyle 的回复:
这个好办,将客户选择的图片BASE64编码写入Settings,客户每次启动软件读Settings还原图片即可。
具我了解,Settings 是传放在注册表中的。。
jimil 2014-03-20
  • 打赏
  • 举报
回复
我说两种方法,我目前开发的正在使用的医疗影像传输系统,就是二种方法的结合,首先是DICOM图片集成,你可以理解成无限图片集成在一起,说无限,但实际使用中不会超过500张,它的原理即是二进制图片,病人姓名等数据(文本信息),按一定的分格格式标准加截进去,然后形成一种非常方便的格式算法,即图片数据再多再大,我也能极快速地提取自己想要的数据,你这方面如果数据不多,则用固定的格式分割就好。 二是更新,即一套系统启动时自动检查有无更新,有更新则启动更新程序并关闭自身,即同时更新程序本身和DICOM集成,这里说说DICOM怎么更新,即信息和日期,日期方面你应该用不到,就不说了,我开发的DICOM图片集成是有信息这方面的汇总,我是用JSON格式来做的,如果有更新则进行更新。 两种方法缺一不可,你可以借鉴一下,应该对你有帮助。
weizhuangwen 2014-03-20
  • 打赏
  • 举报
回复
引用 15 楼 rutstyle 的回复:
好吧,那我就把我的惊天地泣鬼神的武林绝学传授给你—— 你可以通过一个应用程序域或使用反射来加载这个EXE文件,将EXE加载的图片集合序列化成二进制数组,将二进制数组按字节追加到EXE文件的末尾,下次启动时,从EXE文件末尾解析二进制数组还原图片显示。
高手!!谢谢!!
rutstyle 2014-03-20
  • 打赏
  • 举报
回复
好吧,那我就把我的惊天地泣鬼神的武林绝学传授给你—— 你可以通过一个应用程序域或使用反射来加载这个EXE文件,将EXE加载的图片集合序列化成二进制数组,将二进制数组按字节追加到EXE文件的末尾,下次启动时,从EXE文件末尾解析二进制数组还原图片显示。
jy251 2014-03-20
  • 打赏
  • 举报
回复
至少我从来没听说过exe可以动态保存资源的,否则要那么多的配置文件、数据文件干什么?
rutstyle 2014-03-18
  • 打赏
  • 举报
回复
这个好办,将客户选择的图片BASE64编码写入Settings,客户每次启动软件读Settings还原图片即可。
weizhuangwen 2014-03-18
  • 打赏
  • 举报
回复
没人么??顶起!!
weizhuangwen 2014-03-18
  • 打赏
  • 举报
回复
引用 6 楼 wyd1520 的回复:
[quote=引用 4 楼 weizhuangwen 的回复:] [quote=引用 楼主 weizhuangwen 的回复:] 众所周知,在.NET中在制作软件的过程中,可以加载资源文件,然后生成一个内嵌有资源文件的EXE可执行文件。 现在我在公司遇到这么一个难题:我制作了一个EXE文件(已经编译生成了)。我要把未知数量的图片X,加载进这个EXE中,该怎么做? 难题是:这个EXE是编译以后,而且是已经给客户了的。客户要通过软件界面选择N张图片后,加载入EXE中。EXE在下次运行时候已经包含了这些图片的资源文件。 先放100分,有办法解决再给400分。
不能外部携带资源啊,要载入EXE中。。[/quote] 不是说了么不行的。死心吧。。。[/quote] 我的心在等待~~永远在等待~~~~~
本拉灯 2014-03-18
  • 打赏
  • 举报
回复
引用 4 楼 weizhuangwen 的回复:
[quote=引用 楼主 weizhuangwen 的回复:] 众所周知,在.NET中在制作软件的过程中,可以加载资源文件,然后生成一个内嵌有资源文件的EXE可执行文件。 现在我在公司遇到这么一个难题:我制作了一个EXE文件(已经编译生成了)。我要把未知数量的图片X,加载进这个EXE中,该怎么做? 难题是:这个EXE是编译以后,而且是已经给客户了的。客户要通过软件界面选择N张图片后,加载入EXE中。EXE在下次运行时候已经包含了这些图片的资源文件。 先放100分,有办法解决再给400分。
不能外部携带资源啊,要载入EXE中。。[/quote] 不是说了么不行的。死心吧。。。
weizhuangwen 2014-03-18
  • 打赏
  • 举报
回复
引用 1 楼 wyd1520 的回复:
难道你不会把资源文件单独成一个数据文件么。以后想怎么调就怎么调。就跟exe无关了
加载到内存没用,要以资源的形式加载入EXE中。下次使用时候这个EXE中已经带了图片资源
weizhuangwen 2014-03-18
  • 打赏
  • 举报
回复
引用 楼主 weizhuangwen 的回复:
众所周知,在.NET中在制作软件的过程中,可以加载资源文件,然后生成一个内嵌有资源文件的EXE可执行文件。 现在我在公司遇到这么一个难题:我制作了一个EXE文件(已经编译生成了)。我要把未知数量的图片X,加载进这个EXE中,该怎么做? 难题是:这个EXE是编译以后,而且是已经给客户了的。客户要通过软件界面选择N张图片后,加载入EXE中。EXE在下次运行时候已经包含了这些图片的资源文件。 先放100分,有办法解决再给400分。
不能外部携带资源啊,要载入EXE中。。
weizhuangwen 2014-03-18
  • 打赏
  • 举报
回复
简单的说就是:EXE的资源文件,是客户选择的,程序动态加载内嵌入EXE中,可以吗?
bdmh 2014-03-18
  • 打赏
  • 举报
回复
这没法, 考虑不周到,不够灵活,改程序吧,改成可以动态加载图片的方式,比如可以让用户选择图片,然后将选择的图片加载到内存(或者只加载文件名),然后用到的时候根据名字动态显示图片
本拉灯 2014-03-18
  • 打赏
  • 举报
回复
难道你不会把资源文件单独成一个数据文件么。以后想怎么调就怎么调。就跟exe无关了

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧