Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#15

Re: Neustrukturierung einer DLL

  Alt 6. Jul 2007, 11:03
Mal ans eingemachte

Mit dieser funktion Initialisiere ich zum beispiel Winamp-Plugins
Delphi-Quellcode:
function BASS_WINAMPVIS_Init(AppHandle: DWORD; WinHandle: DWORD): boolean; stdcall;

begin
   try
     ApplicationHandle := AppHandle;
     FormParentHandle := WinHandle;

     BassVis1 := TBassVis.Create(nil);
   finally
     // Nothing
   end;

   result := True;
   BassVisInit := Result;
   
end;
Delphi-Quellcode:
constructor TBASSVis.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  DecodeChannel := 0;
  FPlayerMode := plmStandby;
  FStreamName := '';
  FStreamInfo.FileName := nil;
  FStreamInfo.FileSize := 0;
  FStreamInfo.SampleRate := 0;
  FStreamInfo.Pos := 0;
  FStreamInfo.Len := 0;
  FStreamInfo.PlaylistFileLength := 0;
  FStreamInfo.PlaylistPos := 0;

....
destructor TBASSVis.Destroy; Kann ich die INIT Routine so belassen wenn ich zu dieser funktion das Kind addiere?
Und den Namen BASS_WINAMPVIS_Init nach BASSVIS_Init umbenenne.
function BASSVIS_Init(Kind: BASSVIS_KIND_T; AppHandle: DWORD; WinHandle: DWORD): boolean; stdcall; theoretisch müßte ja dann bei jeden neuen aufruf von INIT zuerst Destroy ausgelößt werden
das wäre ja dann ein automatisches beenden der classe.
In Destroy müßte dann nur das Kind verglichen werden um das vorher aktivierte Plugin zu beenden.

Wäre das eine Lösung ? bzw.. welchen Namen könnte man der Function übergeben das
es unter allen anderen Sprachen korrekt interpretiert wird.

gruss Emil
  Mit Zitat antworten Zitat