Скачать MetaTrader 5

Что возвращает GetTickCount() после переполнения счетчика? - страница 3

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Klaus
3
Klaus  
Господа, вы почему-то забываете, что GetTickCount() может иметь и только положительное значение, т.к. в документации указывается, что оно может быть не INT, а UINT - а он беззнаковый и больше INT в 2 раза. Вот что будет дальше тогда?

Жаль, что TheXpert не объяснил, как бороться с переполнением.

Мой советник работает на VPS постоянно и я очень боюсь этой непредсказуемости. А как VPS перегружать, чтоб сбросить таймер? Ха-ха. :)

o_o
Модератор
23860
o_o  
Renat:
Так как значение DWORD (беззнаковое 32битное число), то счетчик просто переходит через ноль и идет дальше. После ноля идет 1,2,3 ...
Slava
Модератор
6918
Slava  
lebentz:
Господа, вы почему-то забываете, что GetTickCount() может иметь и только положительное значение, т.к. в документации указывается, что оно может быть не INT, а UINT - а он беззнаковый и больше INT в 2 раза. Вот что будет дальше тогда?

Жаль, что TheXpert не объяснил, как бороться с переполнением.

Мой советник работает на VPS постоянно и я очень боюсь этой непредсказуемости. А как VPS перегружать, чтоб сбросить таймер? Ха-ха. :)

Попробуйте повычитать беззнаковые целые друг из друга с присвоением результата в беззнаковое же целое.

Вы удивитесь, но разница tick_count - prev_tick_count даст правильное значение даже при переходе через 0. То есть, tick_count=5, prev_tick_count=0xFFFFFFF7, например

Проверьте!

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий