some times naive:为什么不把资源文件全部打包到resource文件里
2007-08-29 17:15
253 查看
在上个项目里,我把应用的所有资源文件,也就是所有图片全部放在和EXE同级的目录里,结果造成了下面这些问题:
(1) 每个应用都对应10张以上的图片,结果就得在CE的platform.bib里管理几十个文件。
(2) 工业设计还经常根据营销的要求更换图片,而图片无法用Beyond Compare或者代码管理工具来比较,这多次导致了工程师手里的图片和从BUILD SERVER上RELEASE出来的程序图片不一致。
做集成的时候就特别恨这事情。
这次项目我吸取了教训,每个应用都把图片全部打包到各自的resource.rc里,编译出来就是一个几百K的.res文件,最后全部LINK到EXE里头,这样每个应用只需要提交一个EXE即可,系统集成时的工作量就小很多了。
但是到项目后期我走了个极端,希望能把TTF字体资源和音频文件全部打包到RES里面。这个从技术实现上并不难,但做完后就出问题了。
比如我打包个1M的WAV文件,最后全部LINK到EXE里面,运行时EXE整个映射到进程空间里,这造成不论当前是否调用WAV文件,始终有1M内存被WAV占着了,亏死。
结论:应该只把程序启动时立刻就要用到的资源打包到RES里面,而某些特定条件下才会用到的资源就放在EXE外部,在程序里通过文件系统调用。
结论的结论:无聊,too simple, sometimes naive
(1) 每个应用都对应10张以上的图片,结果就得在CE的platform.bib里管理几十个文件。
(2) 工业设计还经常根据营销的要求更换图片,而图片无法用Beyond Compare或者代码管理工具来比较,这多次导致了工程师手里的图片和从BUILD SERVER上RELEASE出来的程序图片不一致。
做集成的时候就特别恨这事情。
这次项目我吸取了教训,每个应用都把图片全部打包到各自的resource.rc里,编译出来就是一个几百K的.res文件,最后全部LINK到EXE里头,这样每个应用只需要提交一个EXE即可,系统集成时的工作量就小很多了。
但是到项目后期我走了个极端,希望能把TTF字体资源和音频文件全部打包到RES里面。这个从技术实现上并不难,但做完后就出问题了。
比如我打包个1M的WAV文件,最后全部LINK到EXE里面,运行时EXE整个映射到进程空间里,这造成不论当前是否调用WAV文件,始终有1M内存被WAV占着了,亏死。
结论:应该只把程序启动时立刻就要用到的资源打包到RES里面,而某些特定条件下才会用到的资源就放在EXE外部,在程序里通过文件系统调用。
结论的结论:无聊,too simple, sometimes naive
相关文章推荐
- C# DLL资源文件打包(图片、JS、CSS)[WebResource]
- C# DLL资源文件打包(图片、JS、CSS)[WebResource]
- [转]C# DLL资源文件打包(图片、JS、CSS)[WebResource]
- C# DLL资源文件打包(图片、JS、CSS)[WebResource]
- 一起看代码来玩玩QT之26 Resource(加载资源文件,比如打包的时候加载图片什么的)
- Adroid将项目打成jar包,解决资源文件无法打包
- 解决项目打jar包,资源文件不能打包的问题
- android 把activity和资源文件打包成jar包给其他项目使用
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
- android studio 把源码和资源文件一起打包生成aar包
- (转)将游戏资源文件打包
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- 修改系统资源文件后,应用程序全部运行出错
- Android将Activity 打 jar包 (解决资源文件不能打包的问题)
- Maven 使用指南(7): 使用Maven打包资源文件
- Java打包找不到资源文件问题
- 解决java工程打包后无法找到资源文件路径的方法
- Android含资源文件引用的项目打包成jar包
- getResourceAsStream 读取资源文件
- 关于getClass().getResourceAsStream(path)跨项目取文件资源返回值为null的报错