AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

injected .dll destruktor

Ein Thema von Arnulf · begonnen am 14. Aug 2008 · letzter Beitrag vom 14. Aug 2008
Antwort Antwort
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#1

injected .dll destruktor

  Alt 14. Aug 2008, 12:37
Hi
Die Frage mag etwa Blauäugig sein, aber gibt es bei eine .dll eine method um diese Sauber zu entladen?
eine Art onclose oder eben einen Destruktor wenn FreeLibrary verwendet wird.

Ich Injecte eine .dll in einen Fremden Prozess und möchte vor dem Entladen wieder alles aufräumen.
Die einzige Möglichkeit wäre für mich wenn ich einen thread starte der auf eine Nachricht wartet und dann eben alle Resourcen wieder frei gibt ( threads schließt, code hooks entfernt usw..... ). Dann wieder Nachricht zurück dass alles entladen wurde und .dll frei geben.

Aber schöner wäre es wenn das in der .dll möglich wäre - diese also bemerkt, dass sie entladen werden soll und damit vorher alles Frei gibt.

lg
Arnulf
  Mit Zitat antworten Zitat
Benutzerbild von MSSSSM
MSSSSM

Registriert seit: 18. Apr 2008
223 Beiträge
 
Delphi 7 Professional
 
#2

Re: injected .dll destruktor

  Alt 14. Aug 2008, 16:44
Delphi-Quellcode:
uses
  SysUtils,
  Classes,
  Windows;

{$IFNDEF CONDITIONALDEFINE}
// type def for Delphi 2-5
type
  TDLLProc = procedure(Reason: Integer);
{$ENDIF}

var
  DLLProcNext: TDLLProc;

function InitTest():integer; stdcall;
begin

   result:=0;
end;

procedure DLLMain(Reason: Integer);
begin
  case Reason of
    DLL_PROCESS_ATTACH:
      begin
       DisableThreadLibraryCalls(hInstance);
      end;
    DLL_THREAD_ATTACH:
        ;
    DLL_THREAD_DETACH:
        ;
    DLL_PROCESS_DETACH:
      begin

      end;
  end;

  if Assigned(DLLProcNext) then DLLProcNext(Reason);
end;

exports
InitTest;

begin
  DLLProcNext := Pointer(InterlockedExchange(Integer(@DLLProc), Integer(@DLLMain)));
  DLLMain(DLL_PROCESS_ATTACH);
end.
müsste gehen.

Wenns nicht geht schau mal in dieses thema
Marius
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz