Удалить 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 прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: DLL и PlugIns ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |