2,497
社区成员
发帖
与我相关
我的任务
分享
//将Src文件保存到Trg文件里
procedure ResSaveFile(SrcFile,TrgFile:TFileName;AFileName,AType,AName:String);//AType这里没有用到,基本都保存于RT_RCDATA
function ResLoadFile(SrcFile,TrgFile:TFileName;AFileName,AType,AName:String):Boolean;
procedure ResSaveFile(SrcFile,TrgFile:TFileName;AFileName,AType,AName:String);
var fs:TFileStream;buffer:PChar;hh:THandle;
begin
fs:=TFileStream.Create(SrcFile,fmOpenReadWrite);
try
GetMem(buffer,fs.size);
try
fs.ReadBuffer(buffer^,fs.size);
hh:=BeginUpdateResource(PChar(TrgFile),false);
if (hh<>0)and(
UpdateResource(hh,RT_RCDATA,PChar(UpperCase(AName)),GetUserDefaultLangID(),buffer,fs.Size)
) then
Prompt('保存文件完成')
else Prompt('保存文件失败',1);
EndUpdateResource(hh,false);
finally
FreeMem(buffer);
end;
finally
fs.Free;
end;
end;
function ResLoadFile(SrcFile,TrgFile:TFileName;AFileName,AType,AName:String):Boolean;
//var s:String;hh:THandle;rs:TResourceStream;jj:TJpegImage;
//参考用,代码Pass
begin
Result:=false;
{ try
Result:=false;
s:=UpperCase(Name);
hh:=LoadLibrary(PChar(AppPath+RES_NAME));
if hh<>0 then
try
rs:=TResourceStream.Create(hh,PChar(s),RT_RCDATA);
jj:=TJpegImage.Create;
try
jj.LoadFromStream(rs);
// AImage.Picture.Assign(jj);
Result:=true;//(AImage.Picture.Width>0) and (AImage.Picture.Height>0);
finally
rs.Free;
jj.Free;
end;
finally
FreeLibrary(hh);
end;
except
Result:=false;
end;}
end;