Мое приложение использует пакеты времени выполнения, загружая динамический пакет, например так:
LoadPackage('.\MyPackage.bpl');
MyPackage
требуется другой пакет (статически связанный) с именем MyLibrary.bpl
, который предоставляет базовые классы.
MyLibrary.bpl:
TMyLibraryObject = class
public
procedure DoSomething(); virtual;
end;
MyPackage.bpl:
TMyPackageObject = class(TMyLibraryObject);
public
procedure DoSomething(); override;
end;
В TMyLibraryObject.DoSomething()
я хочу получить имя файладинамический пакет, в данном случае "C:\Program Files (x86)\MyApp\MyPackage.bpl"
.
Я пытался с System.SysUtils.GetModuleName
, передавая HInstance
в качестве параметра, но он возвращает MyLibrary
из MyPackage
.
Я также пытался передать GetModuleHandle(nil)
в функцию GetModuleName()
, но он возвращает исполняемое имя файла.