[英]UpdateResource fails…what i am doing wrong?
我正在尝试更新exe中的位图。 我打开了资源黑客,发现资源名称是6801,所以我想出了这段代码
ResUpdate:=BeginUpdateResource(Pchar(szExplorer),false);
ShowMessage(SysErrorMessage(GetLastError));
if ResUpdate<>0 then
begin
FS:=TFileStream.Create(szBitmap,fmOpenRead or fmShareDenyWrite);
SetLength(thebmp,FS.Size);
dwSize:=FS.Size;
FS.ReadBuffer(thebmp[0],FS.Size);
FS.Free;
UpdateResource(ResUpdate,RT_BITMAP,MAKEINTRESOURCE(6801),LANG_SYSTEM_DEFAULT,@thebmp[0],dwSize);
EndUpdateResource(ResUpdate,false);
end;
对UpdateResource的调用失败。 我哪里错了?
我不知道您为什么说对UpdateResource
的调用失败。 您要检查的唯一结果是BeginUpdateResource
,该结果显然失败,错误代码为50, Error_Not_Supported
。
基于资源号和包含要更新文件的变量名,我认为您正在尝试修改Windows资源管理器的“开始orb”位图。 API文档告诉您,您需要能够对要更新的文件进行写访问,尤其是要更新的文件当前无法运行 。 在尝试修改资源管理器之前,请确保关闭它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.