![]()  | 
![]() ![]() ![]() ![]()  | 
   
 | 
Удалить DLL из памятиDelphi , Файловая система , DLL и PlugInsУдалить DLL из памяти
Оформил: DeeCo 
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 прямо в свой смартфон. Подпишитесь на наш  :: Главная :: DLL и PlugIns :: 
  | 
||||
 ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007  | ||||