Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Удалить DLL из памяти

Delphi , Файловая система , DLL и PlugIns

Удалить DLL из памяти

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function KillDll(aDllName: string): Boolean;
 var
   hDLL: THandle;
   aName: array[0..10] of char;
   FoundDLL: Boolean;
 begin
   StrPCopy(aName, aDllName);
   FoundDLL := False;
   repeat
     hDLL := GetModuleHandle(aName);
     if hDLL = 0 then
       Break;
     FoundDLL := True;
     FreeLibrary(hDLL);
   until False;
   if FoundDLL then
     MessageDlg('Success!', mtInformation, [mbOK], 0)
   else
     MessageDlg('DLL not found!', mtInformation, [mbOK], 0);
 end;

Here's the translation of the Delphi code into Russian:

Функция KillDll (aDllName: строка): Ложь;

Переменные и инициализация: var hDLL: THandle; aName: array[0..10] of char; FoundDLL: Ложь;

Основной код: begin StrPCopy(aName, aDllName); FoundDLL := False; repeat hDLL := GetModuleHandle(aName); if hDLL = 0 then Break; FoundDLL := True; FreeLibrary(hDLL); until False;

Если FoundDLL, то MessageDlg('Успех!', mtInformation, [mbOK], 0) иначе MessageDlg('ДLL не найден!', mtInformation, [mbOK], 0);

Альтернативное решение: Помимо этого кода, который пытается удалить DLL из памяти, важно отметить, что Delphi использует другой механизм управления памятью, чем другие языки. В частности, Delphi не имеет понятия "освобождения" памяти в классическом смысле.

Альтернативный подход заключается в использовании функции FreeLibrary в сочетании с функцией GetModuleHandleEx, которая позволяет указать флаг LOAD_LIBRARY_AS_DATA_FILE для загрузки DLL как файла данных вместо исполняемого файла. Это может помочь обеспечить правильное выгрузку DLL из памяти.

Пример: function KillDll (aDllName: строка): Ложь; var hDLL: THandle; begin hDLL := GetModuleHandleEx(0, PChar(aDllName), nil); if hDLL <> 0 then begin FreeLibrary(hDLL); Result := True; end else Result := False; end;

В статье описан функционал на языке Delphi, позволяющий удалить DLL из памяти и сообщать о результате операции.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: DLL и PlugIns ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 14:19:30/0.0052318572998047/1