delphi – 提取资源文件
发布时间:2020-12-15 09:37:59 所属栏目:大数据 来源:网络整理
导读:我已使用UpdateResource函数将资源文件附加到现有的exe文件. 我该如何提取它? 编辑 这是我将资源文件附加到现有exe文件的代码: Uses Classes,Windows,SysUtils,Dialogs;Type TBuffer = Array[0..0] of Byte; PBuffer = ^TBuffer;Var FS : TFileStream; Res
我已使用UpdateResource函数将资源文件附加到现有的exe文件.
我该如何提取它? 编辑 这是我将资源文件附加到现有exe文件的代码: Uses Classes,Windows,SysUtils,Dialogs; Type TBuffer = Array[0..0] of Byte; PBuffer = ^TBuffer; Var FS : TFileStream; ResourceHandle : THandle; DataLength : DWord; Data : PBuffer; Ok : Boolean; Begin ResourceHandle := BeginUpdateResource(pChar('d:someexefile.exe'),False); IF (ResourceHandle <> 0) Then Begin FS := TFileStream.Create('d:somebitmap.bmp',fmOpenRead); FS.Seek(0,soFromBeginning); DataLength := FS.Size; GetMem(Data,DataLength); FS.Read(Data^,DataLength); FS.Free; Ok := True; IF (not UpdateResource(ResourceHandle,RT_RCDATA,pChar('MyNewResource'),LANG_SYSTEM_DEFAULT{MakeLangID(LANG_NEUTRAL,SUBLANG_NEUTRAL)},Data,DataLength)) Then Ok := False; IF (not EndUpdateResource(ResourceHandle,False)) Then Ok := False; IF (Ok) Then ShowMessage('Update of resources successful!') Else ShowMessage('Update of resources failed!'); FreeMem(Data); End; End. 解决方法
使用LoadLibraryEx传递LOAD_LIBRARY_AS_IMAGE_
RESOURCE加载模块然后TResourceStream.SaveToFile来保存资源. 我当然假设您不想从正在运行的可执行文件中提取资源.如果是这种情况,您可以直接进入TResourceStream.SaveToFile. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |