동일한 코드의 시간 함수가 XP에서는 충돌하지만 Windows 2003 시스템에서는 정상적으로 실행됩니다. 어떤 아이디어? 크래시 덤프에서Windows에서 SystemTimeToTzSpecificLocalTime 충돌 xp
TIME_ZONE_INFORMATION tzi;
SYSTEMTIME stStartUTC;
SYSTEMTIME stStart;
LPCSTR lpszZone;
BOOL bStatus;
FILETIME* pFT;
DWORD dReturn;
pFT = new FILETIME;
if (pFT)
{
pFT->dwHighDateTime = 4294967295ul;
pFT->dwLowDateTime = 4294962295ul;
if (pFT)
{
FileTimeToSystemTime (pFT, &stStartUTC);
}
else
{
GetSystemTime (&stStartUTC);
}
dReturn = GetTimeZoneInformation (&tzi);
bStatus = SystemTimeToTzSpecificLocalTime (&tzi, &stStartUTC, &stStart);
}
스택은 다음과 같습니다
0816e968 7c85a6f2 00000000 00000024 7c85a6f8 KERNEL32 __ report_gsfailure + 0xda
0816ebf8 7c85a788 0816ec10 0816ec70 0000a8f0 KERNEL32 FindRegTziForCurrentYear + 0x1a5
!0816ec3c 7c85a7bd 0816ec70 0000a8f0 0816eec4 KERNEL32! CheckDynamicTimeZoneInformation + 0x29
0816ec54 7c85a834 0816ec70 0000a8f0 0816eec4 KERNEL32! GetDynamicTimeZoneInfoForTimeZone + 0x17을
0816ee7c의 7c83b11c 0000a8f0 00000000 0816eec4 KERNEL32! GetTimeZoneInformationForYear + 0x58
0816f020 14f27e38 0816f05c의 0816f03c 0816f04c kernel32! SystemTimeToTzSpecificLocalTime + 0x3c
,363,210
감사의 SystemTimeToTzSpecificLocalTime
개까지 모든 기능이 성공인지 아닌지 확인하기 위해 GetLastError
전화를 추가 Mithuna
GetLastError는 FileTimeToSystemTime이 0을 반환하고 오류를 형식화 한 출력이 매개 변수가 잘못되었음을 보여줍니다. 매개 변수가 틀리다고는하지만 크래시 또는 힙 손상을 유발 한 원인이 무엇인지 궁금합니다. 감사. – mithuna