文档章节

学习使用资源文件[11] - DLL 中的资源文件

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 348
阅读 7
收藏 0

本例将把一张 bmp 图片, 以资源文件的方式嵌入 dll, 然后再调用.

第一步: 建一个 DLL 工程, 如图:


然后保存, 我这里使用的名称都是默认的.

第二步: 建一个资源原文件, 如图:


编辑内容如下(路径中的文件一定要存在):
img1 BITMAP "c:\temp\test.bmp"

然后, 取个名(后缀须是 rc, 我这里取名为 Res.rc), 保存在工程目录下.

第三步: 在 DLL 工程中添加这个资源原文件, 如图:


此时, 工程源文件中会添加一句: {$R 'Res.res' 'Res.rc'}, 我们需要的源文件这样即可: library Project1; {$R 'Res.res' 'Res.rc'} begin end. 然后 Ctrl+F9 编译; 此时在工程目录下会生成我们需要的 Project1.dll.

第四步: 把刚才的 Project1.dll 文件复制到 c:\temp 下.
这样过会我们可以通过 c:\temp\Project1.dll 找到这个文件. 至此 DLL 制作完毕.

第五步: 重新建一个 VCL Forms Application 工程, 代码如下:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
var
  h: THandle;
  bit: TBitmap;
begin
  h := LoadLibrary('c:\temp\Project1.dll'); {载入 DLL}

  bit := TBitmap.Create;
  bit.LoadFromResourceName(h, 'img1');      {提取资源}

  Canvas.Draw(10, 10, bit);                 {在窗体上绘制图片}

  FreeLibrary(h);                           {载卸 DLL}
  bit.Free;
end;

end.

 
 
 
 
 

 

 

  
//效果图:


本文转载自:http://www.cnblogs.com/del/archive/2008/02/15/1069861.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
dll文件

2016年9月3日11:35:42dll文件:DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Win...

anlve
2016/11/15
3
0
模块句柄(实例句柄)和句柄的区别

看过windows核心编程的都知道有很多概念。同时如果你不只对windows有所了解,对linux mac等 *unix操作系统也有所了解的话。可能会出现有的东西都重合,而有的没有。这里说下win下句柄概念。 ...

土匪猿
2018/05/15
0
0
海莲花APT组织最新攻击样本分析

  0×1 概况   海莲花(OceanLotus)也叫APT32或APT-C-00,是一个长期针对中国及其他东亚国家(地区)政府、科研机构、海运企业等领域进行攻击的APT组织。近日腾讯御见威胁情报中心捕获到...

FreeBuf
2018/05/02
0
0
[16]Windows PowerShell DSC学习系列---基于Class风格定制DSC资源?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chancein007/article/details/55047667 前面的章节介绍了,[15]Windows PowerShell DSC学习系列---基于.NET ...

朱清云的技术博客
2017/02/13
0
0
PHP开启多线程扩展

php从5.3开始支持多线程pthreads扩展,并同时支持window和linux。 pthreads可以实现多任务同步或异步执行,它提供了创建多线程应用所需的全套工具,默认未安装。 安装 window系统下:http://...

ttlxihuan
2017/02/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

从 JVM 分析 hibernate-validator NoClassDefFoundError

最近排查一个spring boot应用抛出hibernate.validator NoClassDefFoundError的问题,异常信息如下: Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernat......

微笑向暖wx
15分钟前
0
0
c++指针和字符串

天王盖地虎626
20分钟前
0
0
从 JVM 分析 hibernate-validator NoClassDefFoundError

最近排查一个spring boot应用抛出hibernate.validator NoClassDefFoundError的问题,异常信息如下: Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernat......

java菜分享
25分钟前
1
0
超500款社交APP对标微信,细分未来社交领域

“微信之父”张小龙在2019微信公开课PRO活动上透露,截止2018年8月,微信的日登录量已超过10亿。腾讯2018年三季度财报显示,QQ智能终端月活跃账户达6.98亿人。 当前微信和QQ无疑是中国最大且...

ThinkSNS账号
32分钟前
1
0
Fiddler 抓包工具总结

序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一...

javaer
34分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部