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