Soy consciente de que para la precisión de tiempo, las funciones como timeGetTime, timeBeginPeriod, QueryPerformanceCounter etc. son excelentes, proporcionando una buena resolución & de precisión, pero solo en función del tiempo transcurrido desde arranque, sin enlace directo a la hora del reloj.Registro con marcas de tiempo que tienen exactitud y resolución de milisegundos en Windows C++
Sin embargo, no quiero cronometrar eventos como tales. Quiero poder mostrar una marca de tiempo exacta (hora local) para poder mostrarla en un archivo de registro, por ejemplo, 31-12-2010 12: 38: 35.345, por cada entrada realizada. (Necesito la precisión de milisegundo)
Las funciones de tiempo estándar de Windows, como GetLocalTime, aunque dan valores en milisegundos, no tienen una resolución de milisegundos, según el sistema operativo en ejecución. Estoy usando XP, así que no puedo esperar mucho mejor que una resolución de 15 ms.
Lo que necesito es una forma de obtener lo mejor de ambos mundos, sin crear una gran sobrecarga para obtener la salida requerida. Métodos/cálculos demasiado grandes significarían que el registrador comenzaría a consumir demasiado tiempo durante su operación.
¿Cuál sería la mejor/más simple forma de hacer esto?
Interesante el punto acerca del lanzamiento de 64 bits ya que no estaba al tanto de eso. Significa que mi solución actual está bloqueada de 32 bits mientras estoy usando (__int64 *) & ft – Dave
Aunque esto no es lo que he terminado, está ciertamente más cerca de la lógica que he usado (aunque en un 32- versión bloqueada bit). ¡Esta respuesta es probablemente mejor! – Dave