Su año debería ser una compensación desde 1900. Ese es probablemente el culpable.
Probar:
licence_expiry_time_struct.tm_year = gtime_to / 10000 - 1900;
En general, cuando se usa mktime()
Se recomienda altamente comenzar con una válida tm
estructura en primer lugar (es decir, llamando localtime()
) y luego cambiando los campos.