¿Cómo realizar el tiempo de alta resolución a largo plazo en Windows usando C ++?

Necesito obtener marcas de tiempo exactas cada par de ms (20, 30, 40 ms) durante un largo período de tiempo (un par de horas). La función en la que se toma la marca de tiempo es invocada como una devolución de llamada por una biblioteca de terceros.

UtilizandoGetSystemTime() one puede obtener la marca de tiempo correcta del sistema, pero solo con una precisión de milisegundos, lo cual no es lo suficientemente preciso para mí. UtilizandoQueryPerformanceTimer() produce marcas de tiempo más precisas, pero no está sincronizado con la marca de tiempo del sistema durante un largo período de tiempo (consultehttp: //msdn.microsoft.com/en-us/magazine/cc163996.asp).

La solución proporcionada en el sitio vinculado anteriormente de alguna manera solo funciona en computadoras más antiguas, se cuelga mientras se sincroniza cuando intento usarla con computadoras más nuevas.

Me parece que impulsar también solo funciona en milisegundos de precisión. Si es posible, me gustaría evitar el uso de bibliotecas externas, pero si no hay otra opción, iré con él.

¿Alguna sugerencia

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta