Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#33

Re: Neustrukturierung einer DLL

  Alt 7. Jul 2007, 17:33
Habe da noch ein verständnis problem

Du schreibst
procedure BASSVIS_Execute(Para:TExecutePara); Verstehe ich nun nicht so recht
Denn genau diese Funktion sollte exportiert und der ganze andere Kram gelöscht werden.

Das soll dann gelöscht werden
Delphi-Quellcode:
function BASS_WINAMPVIS_ExecuteVis(PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean): HVIS; stdcall; external TheDll;
function BASS_SONIQUEVIS_CreateVis(f, visconfig:PChar; flags, w, h: DWORD):HVIS; stdcall; external TheDll;
function BASS_WMPVIS_ExecuteVis(PlgListIndex: Integer; PresetIndex: Integer; VisWinhandle: DWORD; Left, Top, width, heigth: Integer): HVIS; stdcall; external TheDll;
Also eine Funktion für drei.

Aber alle Funktionen der verschiedenen Typen mit obiger procedure ausführbar sein.
Denke dann mal das diese so nicht bleiben kann.

Ich müßte sie dann so umschreiben wie diese
BASSVIS_ExecuteVis(Kind: BASSVIS_KIND_T; PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean):HVIS; stdcall; und intern die Originale function umbenennen eg..
ExecuteWinampVis(PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean): HVIS;

kann dann beim vergleich wenn der Type(Kind) Winamp ist
Delphi-Quellcode:
BASSVIS_ExecuteVis(Kind: BASSVIS_KIND_T; PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean):HVIS; stdcall;
begin
  case Kind of
    BASSVISKIND_WINAMP:
      Result := ExecuteWinampVis(PluginName, moduleNum, ownHdc, ownHdcW2)
    BASSVISKIND_SONIQUE:
      Result := CreateVis(...
    BASSVISKIND_WMP.
      Result := ExecuteWMPVis(...
  else
    Result := 0;
  end;
end;
in die umbenannte/alte function springen
Anders gehts glaube ich nicht.

gruss Emil
  Mit Zitat antworten Zitat