在加载运行时包之前获取包描述



使用Delphi 10.2.3,我有一些运行时加载包,我想在加载之前从BPL获得包的描述,以便我可以通知用户我正在加载该包。在加载软件包之前,我如何访问软件包的描述?它不在versioninfo的FileDescription字段中。

function GetBplDescription(const AFileName: string): string;
var
libHandle: THandle;
resStream: TResourceStream;
begin
Result := '';
libHandle := LoadLibraryEx(PChar(AFileName), 0, LOAD_LIBRARY_AS_DATAFILE);
if (libHandle <> 0) then
begin
resStream := TResourceStream.Create(libHandle, 'DESCRIPTION', RT_RCDATA);
try
if (resStream.Size > 0) then
begin
SetLength(Result, resStream.Size);
resStream.Read(Result[1], resStream.Size);
end;
finally
resStream.Free;
FreeLibrary(LibHandle);
end;
end;
end;

系统。SysUtils为此提供了GetPackageDescription函数。它甚至有文档:System.SysUtils.GetPackageDescription

返回包的描述资源。

调用GetPackageDescription获取存储在命名方案。如果包没有描述资源,GetPackageDescription返回一个空字符串。

相关内容

  • 没有找到相关文章

最新更新