проблема синхронизации qpc C

#c #timer

#c #таймер

Вопрос:

Я пытаюсь использовать qpc для получения синхронизации с высоким разрешением в C .

 LARGE_INTEGER li;
PCFreq = double(li.QuadPart)/1000.0;

QueryPerformanceCounter(amp;li);
long x = (li.QuadPart)/PCFreq;
long y = 60*60*1000;


long h = x/y;
long m = (x-(h*y))/(y/60);
long s = (x-(h*y)-(m*(y/60)))/1000;
long mi = x-(h*y)-(m*(y/60))-(s*1000);
  

Li.quadpart на одной машине 29251473450669. Li.quadpart равен 74248079848 на другой машине.
Я не уверен, почему он большой на одной машине, а не на другой.

Я получаю отрицательные значения для часов и секунд на компьютере с большим значением. Что здесь делается неправильно?

Комментарии:

1. Из кода, который вы опубликовали здесь, похоже, что вы используете LARGE_INTEGER li его еще до его инициализации. Попробуйте поменять местами первые две строки.

2. @Doug: здесь была опечатка. Я правильно инициализировал.