Удаление DLL из памяти
Вот маленький метод, взятый мною из небольшого проекта, созданного мною для удаления DLL из памяти. На форме присутствует одно поле редактирования TEdit с именем EditDLLName, кнопки Ok и Close. Следующий код выполняется при нажатии на кнопке Ok:
procedure TForm1.OkBtnClick(Sender: TObject);
var
hDLL : THandle;
aName : array[0..10] of char;
FoundDLL : Boolean;
begin
if EditDLLName.Text = '' then
begin
MessageDlg('Сначала вы должны ввести имя выгружаемой DLL!',mtInformation,[mbOk],0); exit;
end;
StrPCopy(aName, EditDLLName.Text);
FoundDLL := false;
repeat
hDLL := GetModuleHandle(aName);
if hDLL = 0 then
break;
FoundDLL := true;
FreeLibrary(hDLL);
until false;
if FoundDLL then
MessageDlg('Успешно!',mtInformation,[mbOk],0) else
MessageDlg('DLL не найдена!',mtInformation,[mbOk],0); EditDLLName.Text := ''; end; |