AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Dynamisches Array oder Klasse als Array auslegen

Dynamisches Array oder Klasse als Array auslegen

Ein Thema von EWeiss · begonnen am 22. Sep 2006 · letzter Beitrag vom 30. Sep 2006
 
EWeiss
(Gast)

n/a Beiträge
 
#11

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 24. Sep 2006, 10:18
Zitat:
Denke wieder daran, dass ich mich mit den Bezeichner auf den C++ Code beziehe und du diese Namen in Delphi abwandeln musst.
Auch einen guten Morgen ...

ja werde ich
Was ich das bisher so sehe ist es fast unmöglich den Quelltext von C++ nach Delphi zu übersetzen
zu viele unterschiede und man weiß nicht wo man ansetzen soll.

Habe mich die halbe Nacht mit dem Problem beschäftigt warum beim initialisieren
von den modulen immer ein Totalcrash auftritt.

Bin dann darauf gekommen einen globalen Pointer als Funktion zu definieren
und diesen mit der aktiven ProcessAdresse zu verbinden.
Die Module laufen nun aber mit einschränkung.

Delphi-Quellcode:
pGetMod : function : pointer; stdcall;
pGetMod := GetProcAddress(winampDsp^.hDll, 'winampDSPGetHeader2');
Erst dadurch war es mir möglich die Module richtig einzulesen.
Für euch mag das selbstverständlich sein .. aber bei mir mit nicht so viel wissen
was Delphi angeht war das schon ein fortschritt.

Kannst vielleicht mal über diese Funktion schauen?
Da stimmt irgendetwas mit den IF abfrageverbund nicht
Fehler!

Zitat:
[Pascal Warning] BassWaDSP.pas(573): W1035 Return value of function 'BASS_WADSP_Load' might be undefined



Delphi-Quellcode:
 // Läd ein Winamp DSP Plugin und übergibt das handle
 // Koordinaten und ein User Callback können übergeben werden
function BASS_WADSP_Load(const dspfile: PChar; x, y, Width, Height: integer;
                         proc: WINAMPWINPROC): HDSP; stdcall;

var
  winampDsp: WINAMPPLUGINPROPDSP;
  cnt: integer;

begin
  winampDsp := AllocMem(sizeof(WINAMPPLUGINPROPDSP));
  FillChar(winampDsp, 0, sizeof(winampDsp));

  Saved8087CW := Default8087CW;
  //FPU - Exceptions deaktivieren
  Set8087CW($133f);

  // Library laden
  // zuerst mit unicode versuchen
  winampDsp^.hDll := LoadLibraryW(PWideChar(dspfile));
  if (not winampDsp^.hDll) <> 0 then
  begin
    // ansonsten Ansi
    winampDsp^.hDll := LoadLibrary(dspfile);
  end;

  // Exceptions zurück auf Defaultwert
  Set8087CW(Saved8087CW);

  if winampDsp^.hDll <> 0 then
  begin
    pGetMod := GetProcAddress(winampDsp^.hDll, 'winampDSPGetHeader2');
    if pGetMod <> nil then
    begin
      // Fake Winamp Window erstellen
      if (Create_Winamp_Window(winampDsp, x, y, Width, Height, proc)) = True then
      begin
        cnt := 0;
        winampDsp^.pModule := pGetMod;
        if winampDsp^.pModule <> nil then
        begin
          // Schleife durchlaufen bis kein Modul mehr gefunden wurde
          repeat
            Inc(cnt);
          until winampDsp^.pModule^.getModule(cnt) = nil;
          // Anzahl der Module speichern
          winampDsp^.NumberOfModules := cnt;
          winampDsp^.module := -1;
          InitializeCriticalSection(winampDsp^.csH);
          // Addiere ein neues Winamp DSP Plugin
          AddDSP(winampDsp);
          // Übergebe das Handle
          Result := winampDsp^.handle
      end else
        // Bei Fehler Winamp Fake Window beenden
        Destroy_Winamp_Window(winampDsp);
    end;
    // Library freigeben
    FreeLibrary(winampDsp^.hDll);
    end else
    // Hierhin, wenn irgend ein fehler autritt.
    FreeMem(winampDsp);
  end else
    Result := 0;

end;
GRüße
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz