FILETIME
संरचना को __int64
में परिवर्तित करने का सही तरीका क्या है? क्या आप मुझे बता सकते हैं?FILETIME से __int64
11
A
उत्तर
13
मुझे नहीं लगता कि आप के लिए लगता रहे हैं: "एक 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);
बुरा है
तुम सच में की तरह कुछ हो जाएगा चाहते हैं तो।
4
प्रयास करें
(__int64(filetime.dwHighDateTime)<<32) | __int64(filetime.dwLowDateTime)
1
बेशक
तुम सिर्फ एक __int64 एक filetime लिए casted पास कर सकता है इस प्रकार * (FILETIME *) & int64Val। यह विजुअल सी ++ के तहत ठीक काम करेगा।
यानी
__int64 createTime = 0;
__int64 accessTime = 0;
__int64 writeTime = 0;
GetFileTime(hFile, *(FILETIME*)&createTime, *(FILETIME*)&accessTime, *(FILETIME*)&writeTime);
7
बिटवाइज़ या का उपयोग रहस्यमय निर्माणों पर वापस लौटने की कोई जरूरत नहीं है। विंडोज एपीआई को ऐसा करने के लिए आपको जो कुछ भी चाहिए, उसे मिला है।
unsigned __int64 convert(const FILETIME & ac_FileTime)
{
ULARGE_INTEGER lv_Large ;
lv_Large.LowPart = ac_FileTime.dwLowDateTime ;
lv_Large.HighPart = ac_FileTime.dwHighDateTime ;
return lv_Large.QuadPart ;
}
या यदि आप सीधे __int64 पर जाना चाहते हैं।
__int64 convert_to_int64(const FILETIME & ac_FileTime)
{
return static_cast<__int64> (convert(ac_FileTime)) ;
}
1
आप कोड का पालन करने का प्रयास कर सकते हैं। कोड
template <class Dest, class Source>
inline Dest bit_cast(const Source& source) {
\t Dest dest;
\t memcpy(&dest, &source, sizeof(dest));
\t return dest;
}
//FILETIME to __int64
__int64 FileTimeToMicroseconds(const FILETIME& ft) {
\t return bit_cast<__int64, FILETIME>(ft)/10;
}
void MicrosecondsToFileTime(__int64 us, FILETIME* ft) {
\t *ft = bit_cast<FILETIME, __int64>(us * 10);
}
int _tmain(int argc, _TCHAR* argv[])
{
\t __int64 nTmpUint64 = 13060762249644841;
\t time_t unixtime;
\t FILETIME nTmpFileTm;
\t MicrosecondsToFileTime(nTmpUint64,&nTmpFileTm);
\t return 0;
}
संबंधित मुद्दे
- 1. __int64?
- 2. 'long long' (या __int64) से __m64
- 3. क्या विंडोज़ FILETIME संरचना में लीप सेकेंड शामिल हैं?
- 4. UILE64/Int64
- 5. (मैं किसी अन्य तिथि प्राप्त) dateTime को FILETIME (विंडोज़ समय) से बदलने में सक्षम नहीं किया जा रहा
- 6. पोर्टिंग विंडोज कोड, __int64 _tmain और _TCHAR * के बजाय क्या उपयोग करना है?
- 7. मैं सीधे __int64 चर -2500000000 पर क्यों सेट नहीं कर सकता?
- 8. सी # कोड के ब्लॉक को आसानी से कैसे समय दें?
- 9. क्या कोई फ़्लोटिंग पॉइंट डेटा प्रकार है जो int64 से हानि के बिना परिवर्तित हो जाता है?
- 10. सी # टीपीएल सी ++ पीपीएल से तेज है?
- 11. IO.File.GetLastAccessTime एक घंटे से बंद है
- 12. _int64 एक प्रकार नाम नहीं बताती
- 13. क्या जावास्क्रिप्ट में <img> src फ़ाइल निर्माण समय तक पहुंच बनाना संभव है?
- 14. डेल्फी 6: मैं निर्मित दायर (= फ़ाइल निर्माण दिनांक)
- 15. पर्ल से तेज पर्ल है?
- 16. Google मोक्स इस फ़ंक्शन को अस्पष्ट क्यों कहते हैं?
- 17. मैं यूआरएल से छवि का नाम कैसे प्राप्त कर सकता हूं?
- 18. पाइथन
- 19. टेम्पलेट में टेम्पलेट पैरामीटर के रूप में मैं टेम्पलेट कैसे पास करूं?
- 20. विजुअल स्टूडियो सी ++ 2008 के साथ gettimeofday() या कुछ समकक्ष का उपयोग कैसे करें?
- 21. std :: vector :: ऑपरेटर [] std :: vector :: at() से 5 से 10 गुना तेज क्यों है?
- 22. परमाणु Long.lazySet
- 23. पाइथन में कस्टम अपवादों को कितनी बार परिभाषित किया जाना चाहिए?
- 24. SSE2 कोड अनुकूलन
- 25. दो SYSTEMTIME चर के बीच अंतर
- 26. शीर्षलेख फ़ाइल में वैश्विक फ़ंक्शन परिभाषा है, और डुप्लिकेट प्रतीक लिंकेज त्रुटि
- 27. सबसे तेज़ समय संकल्प प्रणाली
- 28. सी ++ में 64 बिट एनम?
- 29. क्या हेडर केवल लाइब्रेरी के लिए यह बहुत अधिक कोड है?
- 30. सी #: एक संरचना को marshalling जिसमें arrays
मैं संपादन की प्रक्रिया :) – GManNickG
में था क्रोमियम परियोजना से है कैसे memcpy के बारे में (<__int64>, और FILETIME, 8); ? क्या ये सुरक्षित है? – akif
मुझे समझने के लिए 'memcpy' कठिन' मिलेगा, लेकिन मुझे यकीन है कि यह काम करेगा। संकलक शायद शिफ्ट और बेहतर अनुकूलित कर सकते हैं। – GManNickG