Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#3

AW: DLL neu starten nach beenden

  Alt 20. Okt 2010, 18:29
Meines Wissens geht das nicht. Wenn WinAmp FreeLibrary aufruft gibt es nichts das deine DLL dagegen machen kann. Aber du kannst durchaus experimentieren. Der folgende Code erlaubt es dir beim Laden bzw. Entladen der DLL code auszuführen (am Ende der DLL einfügen):

Delphi-Quellcode:
procedure DLLEntryPoint(Reason: Integer);
begin
  case Reason of
    DLL_PROCESS_ATTACH:
      Load; // wird ausgeführt beim laden der DLL
    DLL_PROCESS_DETACH:
      Unload; // wird ausgeführt beim entladen der DLL
  end;
end;

begin
  DllProc := @DLLEntryPoint;
  DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
Die Prozeduren Load und Unload musst du natürlich noch implementieren.
Du weist schon das eine Winamp DLL so ausschaut ?

Delphi-Quellcode:
function winampVisGetHeader: PWinAMPVisHeader; cdecl;
begin
  result := @VisHeader;
end;

exports
  winampVisGetHeader;

begin
Ich wüßte jetzt nicht was du denkst das ich bei Load verwenden könnte.

gruss
  Mit Zitat antworten Zitat