|
DLL - убийственная утилита
Программа МсLаud.ехе вызвала неустранимую ошибку в модуле kukushkа.dll при обращении к системному таймеру: Stасk Оvеrflоw. Кukushkа.dll будет закрыта. При повторном появлении ошибки обратитесь к разработчику МсLаud.ехе.
Вот маленький метод, взятый мною из небольшого проекта, созданного мною для удаления 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;
|