Можно ли изменить значение счетчика тиков, возвращаемое из GetTickCount ()? - PullRequest
1 голос
/ 17 сентября 2010

Я пытаюсь провести некоторое тестирование, и для этого требуется, чтобы система Windows была запущена и работала в течение 15 минут в реальном времени, прежде чем какое-либо действие может произойти. Однако это занимает очень много времени, чтобы ДОЛЖНЫ ждать 15 минут в реальном времени.

Есть ли способ изменить значение, которое возвращает GetTickCount (), чтобы создать впечатление, что система работает в течение 15 минут в реальном времени?

Редактировать: есть приложение, которое делает что-то похожее на то, что я хочу, но оно не совсем работает, и мне приходится иметь дело с шестнадцатеричными значениями вместо прямых десятичных: http://ysgyfarnog.co.uk/utilities/AdjustTickCount/

Ответы [ 3 ]

4 голосов
/ 17 сентября 2010

Не напрямую.

Почему бы просто не смоделировать вызов или заменить кусок кода, который проверяет время, на объект стратегии?

struct Waiter
{
    virtual void Wait() = 0;
    virtual ~Waiter() {};
};

struct 15MinWaiter : public Waiter
{
    virtual void Wait()
    {
        //Do something that waits for 15 mins
    }
};

struct NothingWaiter : public Waiter
{
    virtual void Wait()
    {
        //Nill
    } 
};

Вы могли бы сделать аналогично макетувызов GetTickCount, но, вероятно, лучше сделать это на более высоком уровне абстракции того, что делает ожидание.

2 голосов
/ 17 сентября 2010

В целях отладки вы можете просто заменить все вызовы GetTickCount () на _GetTickCount (), который может быть реализован для возврата с GetTickCount () или GetTickCount () + 15 минут, в зависимости от того, отлаживаетесь вы или нет.

Почему бы не сделать это за одну минуту, подтвердить, что это работает, а затем изменить обратно на пятнадцать?

0 голосов
/ 17 сентября 2010

Вы можете сделать что-то довольно отвратительное, например #define GetTickCount () MyReallyEvilReplacement ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...