Was dein Problem angeht: timeGetTime() liefert einen Integer, wenn du da also / 1000 machst wird, je nachdem wo dus machst, entweder 0 rauskommen (da deine Zeitdifferenzen sicherlich kleiner als 1000 sind) oder die Anzahl ganzer Sekunden die seit Systemstart vergangen sind...aufpassen auf Integerdivision. Ich würd lieber * 0.001f machen, das ist nicht nur schneller, sondern schützt auch vor der Ganzzahldivisionsfalle
Rein prinzipiell denkst du richtig. Aber warum in eine Textdatei speichern? Das Schreiben in die Textdatei könnte eine große Bremse werden, wenn du das ständig machst. Außerdem wird die Genauigkeit von timeGetTime() ohne entsprechende Maßnamen nur schwer ausreichen um eine brauchbare Messung der Frametime zu erlauben. Wenn du die Frametime wirklich direkt messen willst solltest du besser QueryPerformanceCounter() verwenden. Eine andere Möglichkeit wäre, nicht die Frametime zu messen, sondern tatsächlich die FPS zu zählen. Mach dir einfach einen Counter den du in jedem Frame erhöhst. Dazu merkst du dir den Wert, den timeGetTime() hatte, als du die fps das letzte Mal ausgelesen hast. Immer wenn dieser Wert nun > 1000 wird, liest du deine FPS aus und setzt den Counter wieder auf 0.