Как я могу преобразовать микросекунды в миллисекунды и сделать возможным сравнение временных меток по вычитанию?
Пример:
int t1 = (int)timeGetTime();
int t2 = (int)timeGetTime()+40;
// now t1 - t2 < 0 which means that t1 < t2.
Эта логика не будет работать, если вы разделите значения времени на 1000, чтобы преобразовать микросекунды в миллисекунды.
Редактировать
Полагаю, единственное решение - хранить все метки времени в микросекундах. Преобразование в миллисекунды может быть выполнено только после вычитания в значения дельты.