【每日一发】Delphi从Dll中提取自定义的资源文件
来源:互联网 发布:武汉群光有mac的专柜吗 编辑:程序博客网 时间:2024/05/13 22:50
问题1:如何将资源文件放入DLL中呢?
答案: 使用$R 这个编译命令加入你自定义的资源文件,然后编译即可。这样一个没有任何导出函数的dll就是一个包含了资源文件的DLL。Delphi制作资源资源文件很方便,新建一个文本文件,将后缀改为 .rc. 使用文本编辑器打开rc,除了系统预定义的一些资源类型,当然我们也可以自己定义,简单的说就是 三列,分别对应资源名称,资源类型,资源文件,资源文件记得需要使用双引号。例如:
MyTestRES myRes "d:\res\mydata"
问题2: 提取资源文件
function GetResouceFromDll(const DllName: string; ResName, ResType: String; const streamForResource: TMemoryStream): Boolean;var dllHandle: THandle; resPoint: PChar; resSize: Integer; ResModHandle: Integer; ResMemHandle: Integer;begin
Result := False; dllHandle := LoadLibrary(PChar(DllName)); resPoint := nil; resSize := 0; ResMemHandle := 0; try
try //找到资源的句柄 ResModHandle := FindResource(dllHandle, PChar(ResName), PChar(ResType)); //加载资源到内存 ResMemHandle := LoadResource(dllHandle, ResModHandle); //获取资源的引用 resPoint := LockResource(ResMemHandle); //获取资源的大小 resSize := SizeofResource(dllHandle, ResModHandle); streamForResource.SetSize(resSize); streamForResource.Seek(0, 0); streamForResource.Write(resPoint^, resSize);
except
Result := False;
end; finally if dllHandle > 0 then FreeLibrary(dllHandle); if ResMemHandle > 0 then FreeResource(ResMemHandle); end;end;直接使用这个方法就可以将对应的资源文件提出来放入流文件中
0 0
- 【每日一发】Delphi从Dll中提取自定义的资源文件
- 【每日一发】DELPHI位图文件的裁剪和伸缩操作
- C#从DLL中提取资源
- delphi从dll中调用图片资源
- delphi中从DLL,EXE,ICL中提取图标
- Delphi 资源文件 Dll
- VC从EXE中提取资源文件
- 从dll中调用嵌入的资源文件
- 每日一发Python---Python中双冒号的作用[::]
- Delphi从内存加载dll,无需从资源中释放dll
- 从EXE文件中提取音乐、图片等资源
- iOS: 从ipa提取图片资源文件及从iOS设备提取ipa文件的方法
- iOS: 从ipa提取图片资源文件及从iOS设备提取ipa文件的方法
- iOS: 从ipa提取图片资源文件及从iOS设备提取ipa文件的方法
- Delphi从应用程序资源中直接执行dll(不用先把dll存到磁盘上)
- Delphi的Dll中获取文件路径
- Delphi的Dll中获取文件路径
- 从MTK的BIN文件里提取图片资源
- 输出1000到200之间的闰年
- 51单片机 外部中断实验
- 将Execl中的数据导入Sqlite3中
- 欢迎使用CSDN-markdown编辑器
- 穷举算法—素数幻方
- 【每日一发】Delphi从Dll中提取自定义的资源文件
- 查看磁盘文件夹大小工具WinDirStat
- JAVA多线程和并发基础面试问答
- 多元线性回归模型(multivariable linear regression model)
- 图片预览与兼容
- 第五周项目2-对象作为数据成员
- 三维空间中的旋转--旋转向量
- How to Get a List of Class Attributes in Python
- 异步调用及回调