Удаление 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;