Thema: Delphi unsigned DWORD

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

unsigned DWORD

  Alt 18. Feb 2017, 20:08
Einige hier verwenden die Bass Library.
Habe mir die Mühe gemacht meinen Code nochmals zu analysieren inklusive eingeschalteter Bereichs Prüfung.

Das Problem ist folgendes.
BASS_ChannelGetData und andere Funktionen verursachen ERangeError's (manchmal) weil hier DWord unsigned (LongWord 0 bis 4294967295.) verwendet wird.
Treten also minus werte auf dann kracht es.

Die Library von Bass verschickt aber mit seinem Archiv die API Definiert wie folgt.
function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD;

Zitat:
But note, that BASS uses signed values, e.g. BASS_ChannelGetData() might return -1 in certain cases - see the docs.
Nun frage ich mich warum definiert man so eine Funktion bewusst falsch obwohl man ganz genau weis das hier signiert Werte als Rückgabe geliefert werden.

Also muss ich die Bereichsprüfung ausgeschaltet lassen oder gibt es vergleichbare signierte Data Typen für DWord?
Wenn nicht ist diese Library ohne ausgeschalteter Bereichsprüfung
bzw. ohne jedes einzelne Sample vorher auf negative werte zu analysieren nicht verwendbar mit Delphi.


gruss

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