2

いくつかの Windows コンピューターで、2 つのコンピューターを相互に呼び出して ::GetTickCount() を呼び出すと、1610619236 ミリ秒 (約 18 日) の差が返されることがわかりました。これは、og int/unsigned int の不一致のラップアラウンドによるものではありません。Visual C++ 2015/2017 を使用しています。

他の誰かがこの動作を見たことがありますか? 何がこのような動作を引き起こす可能性があるかについて、誰かが考えを持っていますか?

よろしくジョン

バグを示すコード サンプル:

class CLTemp
{
    DWORD nLastCheck;
    CLTemp() 
    {
        nLastCheck=::GetTickCount();
    }
    //Service is called every 200ms by a timer
    void Service()
    {
        if( ::GetTickCount() - nLastCheck > 20000 )//check every 20 sec
        {
            //On some Windows machines, after an uptime of 776 days, the
            //::GetTickCount() - nLastCheck gives a value of 1610619236
            //(corresponding to around 18 days)
            nLastCheck = ::GetTickCount();
        }
    }

};
4

0 に答える 0