AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

fmod problem?

Ein Thema von punker76 · begonnen am 28. Mai 2005 · letzter Beitrag vom 7. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von punker76
punker76

Registriert seit: 11. Jan 2004
Ort: Alsdorf
98 Beiträge
 
Delphi 7 Personal
 
#1

fmod problem?

  Alt 28. Mai 2005, 13:19
hallo

hab mit fmod meinen eigenen player programmiert:

siehe freeware forum: mein thread unter freeware

hab aber tierische probleme.
irgendwie hab ich ein brett vorm kopf. ich verstehe einfach nicht, warum mein player unter windows 2000
mit der funktion "TRUNC" nicht zurechtkommt.
wenn man meinen player auf "direct sound" einstellt, bekomme ich einen fehler (ungültige gleitkommaoperation).
aber halt nur unter win 2000!!!
was soll aber an so einem wert falsch sein "212,00" ???
ich weiss echt nicht mehr weiter.
hab nun um alle TRUNC's ein try except und schreibe die stelle in ein log file.

hängt das vielleicht mit fmod zusammen? dort wird im initialization teil die exception eigentlich ausgeschaltet.
Delphi-Quellcode:
var
  Saved8087CW: Word;

{$ifdef FPC} //FPC do not have this function in its RTL
const
  Default8087CW = $1332; //according to the FPC site it's the value used in the

                         //startup code.
procedure Set8087CW( value :word ); Assembler;
asm
   FLDCW value
end;
{$endif}


initialization
  { Save the current FPU state and then disable FPU exceptions }
  Saved8087CW := Default8087CW;
  Set8087CW($133f); { Disable all fpu exceptions }

finalization
  { Reset the FPU to the previous state }
  Set8087CW(Saved8087CW);
kann mir jemand weiterhelfen?
Jan Karger
Punk's not dead!!!
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: fmod problem?

  Alt 28. Mai 2005, 13:52
hast du auch nen code, wo der trunc befehl einen fehler ergibt?!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von punker76
punker76

Registriert seit: 11. Jan 2004
Ort: Alsdorf
98 Beiträge
 
Delphi 7 Personal
 
#3

Re: fmod problem?

  Alt 28. Mai 2005, 14:17
Zitat von s.h.a.r.k:
hast du auch nen code, wo der trunc befehl einen fehler ergibt?!
zum bleistift 1:
Delphi-Quellcode:
dCurrentR:= 212.2
dCurrentG:= 212.2
dCurrentB:= 212.2
Canvas.Brush.Color := rgb(trunc(dCurrentR), trunc(dCurrentG), trunc(dCurrentB));
zum bleistift 2:
Delphi-Quellcode:
function getTimeDblSecStr (ATimeSec: Double): string;
var
  i   : integer;
begin
  try
    i:= TRUNC (ATimeSec);
  except
    GlobalData. SaveToFehlerLog ('TRUNC Fehler getTimeDblSecStr!');
    Result:= '0:00';
    EXIT;
  end;
  Result:= getTimeSecStr (i*1000); // wandelt integer in string um: 05:00 zum bsp
end;
Jan Karger
Punk's not dead!!!
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: fmod problem?

  Alt 28. Mai 2005, 14:31
Hi, Schon mal mit Round versucht ob es da auch Fehler gibt oder ist es zu ungenau ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von punker76
punker76

Registriert seit: 11. Jan 2004
Ort: Alsdorf
98 Beiträge
 
Delphi 7 Personal
 
#5

Re: fmod problem?

  Alt 28. Mai 2005, 14:57
Zitat von turboPASCAL:
Hi, Schon mal mit Round versucht ob es da auch Fehler gibt oder ist es zu ungenau ?
also ich hab es ausprobiert. leider hilft es nur bedingt. (danke trotzdem für den tipp)
wenn ich das succesive mache, kommt der fehler bei der zuvor aufgerufenen TRUNC funtion.
anscheinend passiert der fehler immer bei der letzten ausgeführten TRUNC funktion.

leider ist es auch nicht hilfreich jetzt alle TRUNC's durch ROUND's zu ersetzen, da an einigen stellen
dies zu ungenau ist.

ich hoffe nicht, dass das ein compilier problem ist.
hab meinen player unter win xp prof sp2 compiliert mit delphi 5 ent.


tschau
Jan Karger
Punk's not dead!!!
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: fmod problem?

  Alt 28. Mai 2005, 15:20
Versuch mal Int64 und nicht Integer ( function Trunc(X: Extended): Int64 )
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von punker76
punker76

Registriert seit: 11. Jan 2004
Ort: Alsdorf
98 Beiträge
 
Delphi 7 Personal
 
#7

Re: fmod problem?

  Alt 28. Mai 2005, 16:16
Zitat von turboPASCAL:
Versuch mal Int64 und nicht Integer ( function Trunc(X: Extended): Int64 )
unter windows xp keine änderung, immer noch der gleiche fehler.

wenn ich diese änderung mache und dann unter win 2000 compiliere geht's. ist aber erlich gesagt, nicht
das was ich will. ich möcht nicht tausend betriebssystem haben und dann jeweils darunter compilieren.

was ist denn zwischen Int64 (win xp) unt Int64 (Win 2000) unterschiedlich?



so: nu is aber für heut schluss, ab in den biergarten und fussball schauen!
Jan Karger
Punk's not dead!!!
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: fmod problem?

  Alt 28. Mai 2005, 16:30
Tja... ?

Was gibt Delphi denn für Fehlermeldung beim ausfhüren?

Fehler mit einer EInvalidOp-Exception abfangen ?!
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von punker76
punker76

Registriert seit: 11. Jan 2004
Ort: Alsdorf
98 Beiträge
 
Delphi 7 Personal
 
#9

Re: fmod problem?

  Alt 29. Mai 2005, 01:22
Zitat von turboPASCAL:
Tja... ?

Was gibt Delphi denn für Fehlermeldung beim ausfhüren?

Fehler mit einer EInvalidOp-Exception abfangen ?!
beim ausführen gibts keine fehlermeldungen und keine warnmeldungen.
die EInvalidOp fang ich ja auch schon ab.
ich weiss auch nicht mehr weiter.

ich werde glaube ich auch mal im fmod forum posten, da ich den verdacht habe, dass es an fmod liegt.

trotzdem danke!
Jan Karger
Punk's not dead!!!
  Mit Zitat antworten Zitat
Benutzerbild von punker76
punker76

Registriert seit: 11. Jan 2004
Ort: Alsdorf
98 Beiträge
 
Delphi 7 Personal
 
#10

Re: fmod problem?

  Alt 29. Mai 2005, 10:16
so ich hab jetzt mal im fmod forum gestöbert und das hier gefunden, was mir auch weitergeholfen hat.
verstehen kann ich es trotzdem nicht.

FMOD Forum: Undoing the Set8087CW Setting

was ist denn zwischen der delphi funktion und der im forum geposteten anders (versteh leider nicht so viel assembler).

Delphi TRUNC:
Delphi-Quellcode:
function Trunc(X: Extended): Int64;

const cwChop : Word = $1F32;

procedure _TRUNC;
asm
        { ->    FST(0)   Extended argument       }
        { <-    EDX:EAX  Result                  }

        SUB ESP,12
        FSTCW [ESP]
        FWAIT
        FLDCW cwChop
        FISTP qword ptr [ESP+4]
        FWAIT
        FLDCW [ESP]
        POP ECX
        POP EAX
        POP EDX
end;
gepostete TRUNC
Delphi-Quellcode:
const
  // FPU status flags (high order byte)
  cwChop : Word = $1F3F;

function Trunc64(v : Extended) : Int64; register;
asm
      SUB ESP,12
      FSTCW [ESP]
      FLDCW cwChop
      FLD v
      FISTP qword ptr [ESP+4]
      FLDCW [ESP]
      POP ECX
      POP EAX
      POP EDX
end;
Jan Karger
Punk's not dead!!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:39 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