资源封装进dll

Posted ice-arrow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了资源封装进dll相关的知识,希望对你有一定的参考价值。

 

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

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

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

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

 

过程如下:

一、添加数据、资源

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

二、访问数据、资源

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

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

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

以上是关于资源封装进dll的主要内容,如果未能解决你的问题,请参考以下文章

将FormView视图封装到DLL中

如何将多个dll封装到一个dll中

如何将多个dll封装到一个dll中

如何将多个dll封装到一个dll中

怎么将qt的开源库封装成dll

java调用C#封装的DLL文件