AGB  ·  Datenschutz  ·  Impressum  







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

Dynamisches Array oder Klasse als Array auslegen

Ein Thema von EWeiss · begonnen am 22. Sep 2006 · letzter Beitrag vom 30. Sep 2006
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#41

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 26. Sep 2006, 08:14
Zumindest bei mir unter D7 besser so:

 csh: PRTLCriticalSection; Grüße, marabu
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#42

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 26. Sep 2006, 08:32
Zitat von marabu:
Zumindest bei mir unter D7 besser so:

 csh: PRTLCriticalSection; Grüße, marabu
ja !
habe in der Windows.pas nochmal nachgesehen meine Annahme konnte nicht stimmen.

Die alte
csH : RTL_CRITICAL_SECTION; war aber auch nicht richtig.

Mit dieser bekam ich eine invalid typecast meldung, mit deiner vorgeschlagenen Meldung.
nach der änderung zu PRTLCriticalSection nimmt der compiler deine lösung an.

Nur jetzt ist csh := nil:
Hat also einen AV zur folge.

Muss ich nun einen pointer auf InitializeCriticalSection setzen?
Wie stelle ich das an das sich csh wieder mit Daten füllt.

grüße
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#43

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 26. Sep 2006, 08:41
Ich habe noch mal ganz zum Anfang zurück geblättert und festgestellt, dass csH in winampDSPinfo ursprünglich als TRTLCriticalSection verbaut war - also nix mit Pointer. Warum bist du davon abgekommen? Du kannst das ruhig so beibehalten.

Grüße, marabu
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#44

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 26. Sep 2006, 08:50
Zitat von marabu:
Ich habe noch mal ganz zum Anfang zurück geblättert und festgestellt, dass csH in winampDSPinfo ursprünglich als TRTLCriticalSection verbaut war - also nix mit Pointer. Warum bist du davon abgekommen? Du kannst das ruhig so beibehalten.

Grüße, marabu
weil beim stopen des Plugin

Delphi-Quellcode:
// Stopt eingeladenes Winamp DSP Plugin (aber entlädt es nicht)
Procedure BASS_WADSP_Stop(plugin : HDSP); stdcall;
var
    winampDsp : WINAMPPLUGINPROPDSP;

begin
  winampDsp := GetDSP(plugin);
   if winampDsp <> nil then
     begin
      if winampDsp^.pDSP <> nil then
      begin
         BASS_WADSP_ChannelRemoveDSP(plugin);
         EnterCriticalSection(winampDsp^.csH);
         winampDsp^.pDSP^.Quit(winampDsp^.pDSP);
         winampDsp^.pDSP := nil;
         winampDsp^.module := -1;
         LeaveCriticalSection(winampDsp^.csH);
      end;
   end;
end;
die anwendung sich verabschiedet.
Das gleiche auch bei allen anderen Functionen welche EnterCriticalSection in anspruch nehmen.
Auch sieht im CCode jede zeile so aus.
Code:
EnterCriticalSection(&winampDsp->csH);
Das '&' ist kein Operator = @ wäre dann ein pointer.

Also alles wieder zurück ? Kein Problem.

grüß
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#45

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 26. Sep 2006, 22:04
Ich habs immer noch nicht begriffen.

Wie kann ich generell verhindern das winampDsp den falschen wert
zugewiesen bekommt?

gruß
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#46

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 27. Sep 2006, 07:49
Moin Emil,

wo geschieht denn die falsche Zuweisung?

Gruß
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#47

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 27. Sep 2006, 08:06
Zitat von marabu:
Moin Emil,

wo geschieht denn die falsche Zuweisung?

Gruß
Guten Morgen Marabu
Bin langsam am verzweifeln..
Finde die richtigen verbindungen irgendwie nicht.

EnterCriticalSection(winampDsp^.csH); Funktioniert generell nicht.
Entweder bleibt die Anwendung hier hängen > läuft einfach nicht weiter
Oder es gibt ein AV.

Delphi-Quellcode:
// Befreit alle DSP Plugin Resourcen und die Bass-Library
Procedure BASS_WADSP_Free(); stdcall;
Var
  a: DWORD;

Begin

   for a := 0 to winampDSPcounter do

   Begin

      winampDsp := winamp_DSP[a];
      if winampDsp <> nil then
      begin
         if winampDsp^.handle <> 0 then
            BASS_WADSP_Stop(winampDsp^.handle);
         // clear the slot
         winamp_DSP[a] := nil;
         Destroy_Winamp_Window(winampDsp);
         FreeLibrary(winampDsp^.hDll);
//         DeleteCriticalSection(winampDsp^.csH);
         FreeMem(winampDsp);
      end;
   end;
   BASS_WADSP_PluginInfoFree();
end;
Einladen der Plugins funktioniert.
Das beenden nicht.
Dieser Counter winampDSPcounter ist immer 0.
dadurch werden mir falsche Werte von winamp_DSP[a] an winampDsp übergeben.
winampDsp ist zwar dann nicht NIL aber die Daten stimmen mit dem Plugin auch nicht überein.
Incrementiere ich den Counter so das er bei 1 anfängt stimmen die werte aber bei FreeMem gibt es auch einen AV.

Weiß nicht weiter habe alle erdenklichen kombinationen versucht.
Name vom Archiv ist falsch geschrieben ... mach dir nix draus.

GRüße
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#48

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 27. Sep 2006, 08:17
Wie kann ich mir mal einen Gesamtüberblick verschaffen? Bin mittlerweile auch etwas orientierungslos. Testen kann ich nicht, aber einen code-walk-through kann ich dir anbieten, wenn du Geduld hast. Muss nebenher auch was arbeiten.

Grüße, marabu
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#49

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 27. Sep 2006, 08:22
Zitat von marabu:
Wie kann ich mir mal einen Gesamtüberblick verschaffen? Bin mittlerweile auch etwas orientierungslos. Testen kann ich nicht, aber einen code-walk-through kann ich dir anbieten, wenn du Geduld hast. Muss nebenher auch was arbeiten.

Grüße, marabu
Ich habe Geduld über allermaßen.
Mußt du eigentlich schon bemerkt haben.

Nur schade das du der einzigste bist der Hilfe anbietet.
Naja vielleicht wissen die anderen nicht wie sie helfen können.

Habe es oben hochgeladen.

Grüße
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#50

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 27. Sep 2006, 08:36
Warum mache ich mir die ganze arbeit.

1. Nicht für mich sondern für die Allgemeinheit.
2. Schreibe an einen Multifunktionsfähigen Plugin welches als ausgangsbasis die BassLibrary benötigt.
3. Es unterstützt bisher vis(Winamp/Sonique),input,gen,dsp in verbindung mit Input-plugins.

Das problem bei der aktuellen DSP version sie kann nur 1 Plg zur gleichen zeit steuern.
Dann möchte ich gerne das die API die gleiche bleibt wie bei den Plugin welches ich übersetze.
Dadurch hat der User der den .NET ApiWrapper für Bass geschrieben hat nachher
bei seiner Hilfe-Anleitung weniger Arbeit.
Kann dann die gleiche benutzen wie bei den standallone Plugin von ihm.

Hier ein Pic!
Miniaturansicht angehängter Grafiken
all_907.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


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 09:27 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