Общее правило заключается в том, что вы должны поместить код, который должен вызываться при выгрузке пакета, в часть finalization
вашего устройства.Я знаю из вашего другого пакета, что вы пытаетесь выгрузить DLL.Но подвох в том, что никогда не следует загружать / выгружать dll из initialization
или finalization
.
Так что вам нужно сделать, чтобы в вашем пакете была функция, которую вы будете вызывать из основного приложения,выполняет очистку.
type
TCleanup = procedure;
var
MyPackageHandle : THandle;
CleanupProc: TCleanup;
begin
MyPackageHandle := LoadPackage('.\MyPackage.bpl');
if(MyPackageHandle <> 0) then
begin
@CleanupProc := GetProcAddress(MyPackageHandle, 'Cleanup' );
if @CleanupProc <> nil then
CleanupProc;
UnloadPackage(MyPackageHandle);
end;
end;