FILETIME к __ int64

Почему Вы не отправляете время с каждой страницей? Например, где-нибудь в HTML:

<span id="time" style="display:none;">
    2009-03-03T23:32:12
</span>

Тогда Вы могли запустить JavaScript, в то время как сайт загружается, и интерпретируйте дату. Это уменьшило бы объем работы, который должна сделать сеть. Можно сохранить соответствующее местное время и вычислить смещение каждый раз, когда Вам нужно оно.

12
задан Ajay 17 November 2014 в 09:56
поделиться

3 ответа

Не думаю, что вы должны: «Не приводите указатель на структуру FILETIME ни к ULARGE_INTEGER * , ни к __ int64 * значение, потому что это может вызвать ошибки выравнивания в 64-битной Windows ».

Источник.

Если бы вы действительно хотели, это было бы примерно так:

__int64 to_int64(FILETIME ft)
{
    return static_cast<__int64>(ft.dwHighDateTime) << 32 | ft.dwLowDateTime;
}

FILETIME ft = // ...
__int64 t = to_int64(ft);

Но что-то вроде:

FILETIME ft = // ...
__int64 t = *reinterpet_cast<__int64*>(&ft);

Плохо.

16
ответ дан 2 December 2019 в 04:33
поделиться

Попробуйте

(__int64(filetime.dwHighDateTime)<<32) | __int64(filetime.dwLowDateTime)
5
ответ дан 2 December 2019 в 04:33
поделиться

Конечно, вы можете просто передать __int64, приведенное к файловому времени, следующим образом * (FILETIME *) & int64Val. Это нормально работает в Visual C ++.

т.е.

__int64 createTime = 0;
__int64 accessTime = 0;
__int64 writeTime = 0;
GetFileTime( hFile, *(FILETIME*)&createTime, *(FILETIME*)&accessTime, *(FILETIME*)&writeTime );
-1
ответ дан 2 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: