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

Заменить запущенную DLL

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

Заменить запущенную DLL

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

function SystemErrorMessage: string;
 var
    P: PChar;
 begin
   if FormatMessage(Format_Message_Allocate_Buffer + Format_Message_From_System,
                    nil,
                    GetLastError,
                    0,
                    @P,
                    0,
                    nil) <> 0 then
   begin
     Result := P;
     LocalFree(Integer(P))
   end
    else
      Result := '';
 end;


 // Path to Original File 

procedure TForm1.Button2Click(Sender: TObject);
 begin
   if Opendialog1.Execute then
     edit1.Text := OpenDialog1.FileName;
 end;

 // Path to New File 

procedure TForm1.Button3Click(Sender: TObject);
 begin
   if Opendialog2.Execute then
     edit2.Text := OpenDialog2.FileName;
 end;

 // Replace the File. 

procedure TForm1.Button1Click(Sender: TObject);
 begin
   if (Movefileex(PChar(Edit1.Text), PChar(Edit2.Text), MOVEFILE_DELAY_UNTIL_REBOOT) = False) then
     ShowMessage(SystemErrorMessage)
   else
   begin
     ShowMessage('Please Restart Windows to have these changes take effect');
     halt;
   end;
 end;

Программный код на языке Delphi, используемый для замены файла на другой файл. Оригинальный путь к файлу получается с помощью OpenDialog1, а новый путь к файлу - с помощью OpenDialog2. Затем он использует функцию MoveFileEx для перемещения оригинального файла в новое местоположение. Если операция неудачна, отображается сообщение об ошибке.

Вот как можно модифицировать этот код для замены запущенного DLL на другой:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (MoveFileEx(PChar(Edit1.Text), PChar(Edit2.Text), MOVEFILE_REPLACE_EXISTING) = False) then
    ShowMessage(SystemErrorMessage)
  else
    ShowMessage('The file has been replaced successfully');
end;

В этом коде функция MoveFileEx используется с флагом MOVEFILE_REPLACE_EXISTING для замены существующего файла в новом местоположении. Если операция неудачна, отображается сообщение об ошибке с помощью SystemErrorMessage.

Обратите внимание: убедитесь, что Edit1.Text и Edit2.Text содержат валидные пути к оригинальному и новому файлам соответственно. Кроме того, обеспечьте, что пользователь имеет необходимые разрешения для выполнения этой операции.

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


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 06:02:51/0.0032320022583008/0