Почему Вы не отправляете время с каждой страницей? Например, где-нибудь в HTML:
<span id="time" style="display:none;">
2009-03-03T23:32:12
</span>
Тогда Вы могли запустить JavaScript, в то время как сайт загружается, и интерпретируйте дату. Это уменьшило бы объем работы, который должна сделать сеть. Можно сохранить соответствующее местное время и вычислить смещение каждый раз, когда Вам нужно оно.
Не думаю, что вы должны: «Не приводите указатель на структуру 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);
Плохо.
Попробуйте
(__int64(filetime.dwHighDateTime)<<32) | __int64(filetime.dwLowDateTime)
Конечно, вы можете просто передать __int64, приведенное к файловому времени, следующим образом * (FILETIME *) & int64Val. Это нормально работает в Visual C ++.
т.е.
__int64 createTime = 0;
__int64 accessTime = 0;
__int64 writeTime = 0;
GetFileTime( hFile, *(FILETIME*)&createTime, *(FILETIME*)&accessTime, *(FILETIME*)&writeTime );