Thema: Delphi unsigned DWORD

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#7

AW: unsigned DWORD

  Alt 18. Feb 2017, 23:16
Mit gefrickel meine ich das wenn ich die Bereichsprüfung für Bass extra ausschalten muss.
Es hatte nichts mit deiner Person zu tun. oder den Byte Werten an sich.

Zitat:
Ich habe in diesem Thread noch keinen Code gesehen, der einen solchen Fehler im Compiler auslöst.
Dieser hier!

Einfaches Beispiel.
Mit Bereichsprüfung wirft diese Funktion einen ERangeError.
Nicht bei normaler Behandlung aber wenn ich die Samples pushe über einen Equalizer.
function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD;
Delphi-Quellcode:
function BassDataAvailable: BOOL;
var
  BytesValid: DWORD;
begin
  result := TRUE;

  BytesValid := BASS_ChannelGetData(gnAudioChannel, nil, BASS_DATA_AVAILABLE); //<< ERangeError

  if BytesValid = DW_ERROR then
    result := FALSE;

end;
Wie du siehst ist das ne simple Sache destotrotz werden Fehler geworfen..
Ich kann die Samples natürlich einzeln analysieren und anschließend BytesValid den Wert übergeben.
Nur wo steckt der Sinn dahinter.

Und dieser hier!
Delphi-Quellcode:
      for C := 1 to 2 do
        Inc(pInteger[C]); // WaveData von TWaveData über BASS_ChannelGetData
Ich muss hier die Samples separat vorher Analysieren um den Fehler zu beheben.
Delphi-Quellcode:
      for C := 1 to 2 do
      begin
        IntI := pInteger[C];
        if (IntI > 32767) then
          IntI := 32767
        else
        if (IntI < -32768) then
          IntI := -32768;
        pInteger[C] := IntI;
      end;

gruss

Geändert von EWeiss (18. Feb 2017 um 23:27 Uhr)
  Mit Zitat antworten Zitat