Gleitkommaüberlauf bei fmod / FSOUND_FX_Enable (war: Gleitkommaüberlauf)



  • ich habe folgendes problem... ich hab mir mit fMOD ein Equalizer zusammengebastelt...

    Wenn ich das Programm normal Compiliere und unter BCB ausführe läuft es super, nur wenn ich die exe alleine Starte (nicht von der Entwicklungsumgebung heraus) kommt bei dem Aktivieren des Equalizers eine Fehlermeldung "Gleitkommaüberlauf" 😞

    Das ist der Code zum aktivieren des EQ:

    void TForm1::EnableFX(int fx, int chanl, int activate)
    {
    if (activate==1)
      {if (fx==0)
         {FSOUND_PlaySoundEx(chanl,FSOUND_GetCurrentSample(chanl),NULL,true);
          for (int i=0; i<10; i++)
            {FX_eq[chanl][i] = FSOUND_FX_Enable(chanl, FSOUND_FX_PARAMEQ);}
          FSOUND_SetPaused(chanl, false);}
          for (int i=0; i<10; i++)
            {SetEqualizer(FX_param[chanl][i][1],chanl,FX_param[chanl][i][0],i);}
      }
    else
      {if (fx==0)
         {FSOUND_PlaySoundEx(chanl,FSOUND_GetCurrentSample(chanl),NULL,true);
          for (int i=0; i<10; i++)
            {FX_eq[chanl][i] = FSOUND_FX_Disable(chanl);}
          FSOUND_SetPaused(chanl, false);}
      }
    }
    

    Ich habe windows 2000 und DirectX9 mit fMOD 3.73

    Danke schinmal für die hilfen 🙂

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!



  • In welcher Zeile tritt der Fehler auf?



  • for (int i=0; i<10; i++)
            {FX_eq[chanl][i] = FSOUND_FX_Enable(chanl, FSOUND_FX_PARAMEQ);}
    

    Hier, die schleife wir 1mal durchlaufen, beim 2. mal kommt der fehler... 😞



  • Sehr mysteriös, wenn es in der IDE tatsächlich durchläuft.
    Wie ist FX_eq denn deklariert und initialisiert?

    Und linkst du statisch (standalone) oder mit Runtime-Bibliotheken? Ggf. solltest du mal die jeweils andere Variante testen, nur um zu sehen, ob das einen Unterschied macht.



  • hi... also ich deklariere FX-eq -> int FX_eq[12][8];

    int kann ja meines wissens nach auch als float verwendet werden da ja BCB den automatisch umwandelt oder irre ich da?

    Jetzt habe ich was neues herausgefunden, habe Win XP mal installiert und das programm lief auch erst nicht, doch als ich dann auf kompatibilität mit win95 gestellt hatte ging es auf einmal 🙄

    keine ahnung warum 🙂



  • Ist halt Microschrott



  • wiedi schrieb:

    int kann ja meines wissens nach auch als float verwendet werden da ja BCB den automatisch umwandelt oder irre ich da?

    "umwandelt" ist relativ, da einfach die Nachkommastellen abgeschnitten werde. Aber ich sehe den Zusammenhang nicht, schliesslich liefert FSOUND_FX_Enable doch int zurück.

    Kannst du das Problem in einem Minimalprojekt nachvollziehen? Das könntest du ja evtl. mal bereitstellen (Exe + Code), damit wir das selbst testen können.

    Und wie mit dem statischen vs. dynamischen Linken aus?



  • Sorry, für das Posting!!
    Aber als ich bei Google "FSOUND_FX_Enable" eigegeben habe, erschien das da:

    http://www.c-plusplus.net/forum/posting.php?mode=quote&p=579278

    [EDIT]
    Thread geschlossen, um versehentliche Zitat-Postings über den Google-Link zu vermeiden. Bei Bedarf bitte einen neuen Thread beginnen.
    [/EDIT]


Anmelden zum Antworten