• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2022-05-19 22:44 Aet 隐藏边栏 |   抢沙发  9 
文章评分 3 次,平均分 5.0

资源管理

  1. 在SOUI系统中,资源文件通过一个统一的接口对象读取

  1. 这个接口的实现类通过实现这些既定接口来完成图标(HICON),光标(HCURSOR),位图(HBITMAP),一般图片(IBitmap)的解码,同时也提供原始数据(RawData)的读取。
  2. 在SOUI系统中内置了两种类型的资源加载(ResProvider)模块:SResProviderPE SResProviderFiles,同时也通过外置组件的形式提供了从ZIP文件加载资源的功能。
    1. 为了能够从PE的资源数据段中加载资源,我们需要将uires.idx中索引的文件转换成PE资源可以识别的资源类型+资源名(不是资源ID)的形式
    2. 为了达到这个目的,我们只需要在VS的资源文件中(.rc)将SOUI的资源中定义的文件按照uires.idx定义的类型和名称加进去即可
  3. 资源加载成功后,调用SApplication::AddResProvider(IResProvider *)接口将创建的资源加载器交给SOUI系统管理
    1. SApplication::AddResProvider可以调用多次,便于加载不同的资源

Utilities dll

  1. utilities之所以默认只提供DLL编译是因为SString类是由utilities实现的

  1. 通过将string类导出,保证string的所有运行代码都是在utilities这个模块内部,这也就保证了string对象的唯一成员变量:tchar* m_pszData;的内存分配及释放固定在utilities这个模块里。
    1. 通过这样处理,无论用户定义string是在哪一个模块,真正的内存管理还是在utilities里,从而使得string对象可以方便的在不同模块之间传递。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享