Thema: Delphi unsigned DWORD

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#14

AW: unsigned DWORD

  Alt 19. Feb 2017, 01:59
Dann also
DW_ERROR = LongWord(-1); zu
DW_ERROR = DWord(-1); oder verstehe ich da wieder was falsch.

Aber nebenbei es nimmt kein ende.
Habe es nach LongInt geändert.

Nun bekomme ich hier einen ERangeError.

function BASS_ChannelGetLevel(handle: DWORD): LongInt;
Delphi-Quellcode:
function TMainApp.SolvePeak(nValue, nTotal: LongInt): LongInt;
begin
  Result := 0;
  if nTotal <> 0 then
    Result := (nValue * 98) div nTotal;

end;
Delphi-Quellcode:
    nLevel := BassChannelGetLevel;

    nLpeak := SolvePeak(loword(nLevel), 128);
    nRpeak := SolvePeak(Hiword(nLevel), 128);
EDIT:
Nein kann kein LongInt verwenden da die Daten die von Bass_ChannelGetdata geliefert werden im Bereich höher sind als bei LongInt (-2147483648 to 2147483647)
Was für ein Schmarrn..
Da bleibt nichts anderes übrig als die Bereichsprüfung auszuschalten.
Oder eine neuere Version von Delphi zu verwenden (Nur dafür fehlt mir die Kohle zu teuer für Hobby Programmierer).

Danke an alle für die Diskussion.

gruss

Geändert von EWeiss (19. Feb 2017 um 02:17 Uhr)
  Mit Zitat antworten Zitat