Du hättest besser deinen Source-Code nicht zeigen sollen -)
Aber so kann ich nicht anderes:
also die Fehlermeldung deutet darauf hin, daß deine Funktion irgendwie auf's Internet zugreift und dort anscheinend auf eine ungültige Domain zugreift
Nein, jetzt im Ernst:
so viele Pseudo-Optimierungen, aber keine vernünftige Struktur in deinem Code!
Die Fehler der math. Funktionen kannst du nicht mit catch(...) abfangen, sondern dafür mußt du die Funktion _matherr() definieren, s. http://www.imb-jena.de/~gmueller/kurse/c_c++/c_mather.html
Und jetzt noch ein paar andere "Highlights" deines Codes:
- warum verwendest du 'fsqrt' statt der Standard-Funktion 'sqrt'? Willst du ein paar Taktzyklen sparen - in einen GUI-Programm???
- Timer auf 1 ms bedeutet nicht, daß der 1000mal pro Sekunde aufgerufen wird, sondern der Windows-Timer hat höchstens eine Genauigkeit von ca. 14-15 ms.
- Und dann wiederum packst du die ganzen rechenintensiven Canvas-Initialisierungen in den Timer, obwohl diese konstant sind...
- Und 'Rect(0, 0, ClientWidth, ClientHeight)' könntest du auch in eine Variable packen, anstatt jedesmal zweimal zu berechnen!
- und zu guter letzt: random(2+1)
Überleg dir als Programmierer lieber eine gute Struktur, d.h. trenne die Logik von der GUI (d.h. Aufteilung auf verschiedenen Units).