http://www.virtualdub.org/blog/pivot/entry.php?id=106
Try this code to see if it's possibly the case, I didn't test this, but its just your code running in infinite loop checking if the results from timeGetTime vs c.GetElapsedTime agree over a long running period. You can adjust the number of iteration of the loop to increase the step time.
{ sf::Clock c; while (1) { float a = 0.0f; DWORD start = timeGetTime(); c.Reset(); for (int g=0; g<100000; g++) { float d = sqrtf(g); a += d*d*d; } float dur = c.GetElapsedTime(); float dur2 = (float)(timeGetTime()-start)/1000.0f; if (abs(dur-dur2)>.01) { char mess[256]; sprintf(mess, "detected anomalous time error greater than .01 sec"); MessageBox(NULL, mess, mess, MB_OK); } }}
Good Luck!
-ddn