скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

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;






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook