资源封装进dll

有时候开发一个dll,需要使用到模型资源,传统的做法都是放到特定地方去加载,或者放到服务器上去加载。

虽然前者方便,但资源与组件分离,常常会发生资源与控件不匹配的问题出现。

后者就更麻烦了,修改的时候通常需要加解密,上传下载。不仅无端增加了网络代码,还增加延迟。

这时,如果将模型资源打包进dll,将省去下载相关代码,交互也变得极其简单。

过程如下:

一、添加数据、资源

  在resource(资源)中 通过 “Add resource -> Import...”选择需要添加的 数据/资源,其中的 resource type 可以自己命名。

二、访问数据、资源

  使用FindResource,LoadResource查找并加载资源。这与从文件中加载模型的方式区别较大,但在调用CreateStreamOnHGlobal 获取到流之后的操作便相同了。

  传统的调用CreateFile、ReadFile、CreateStreamOnHGlobal 即可完成文件到流的转换。需要注意使用GlobalLock、GlobalUnlock。

  这里调用GetModuleHandleEx(如果是本dll中资源则可以省去)、FindResource、LoadResource、CreateStreamOnHGlobal即可完成流获取。

原文地址:https://www.cnblogs.com/ice-arrow/p/12172905.html