2011-12-14 3 views
1

<time.h>에는 ctime 및 _ctime_32가 있지만 ctime은 CTime이 아닙니다. CTime 32 비트 아날로그가 있습니까? 아니면 32 비트 CTime과 __time32_t를 함께 사용할 수도 있습니다. 호환성 문제가 64 비트 버전을 사용하고있어.CTime이란 무엇입니까 32bit 아날로그입니까?

확인 어쩌면 내가 전혀 ctime이 필요하지 않습니다, 나는 __time32_t을 잡 및 변형 시간을 제공하기 위해 그것을 사용하고 있습니다 :

SYSTEMTIME st; 
    CTime tmp = pCurPar[pot->numSubsection].SysTime; 
     tmp.GetAsSystemTime(st); 
    SystemTimeToVariantTime(&st,&pot->Value.date); 

을하지만

CTime tmp = pCurPar[pot->numSubsection].SysTime; 

생각하는 것은 올바른 변환으로 인해 아니다 내 .SysTime은 __time32_t이고 CTime은 64 비트 버전을 사용하고 있습니다.

심지어 내가하지해야 내가 단지 비주얼 스튜디오 익스프레스가 그것을 테스트 할 수 없습니다 Warning 3 warning C4244: '=' : conversion from '__time64_t' to 'INT', possible loss of data

+0

귀하의 "문제"는 무엇입니까? –

+0

질문에 추가되었습니다. – Cynede

답변

2

경고있어 Iv'e time32_t로하지만 pot->Value.intVal = DayRec[pot->numSubsection].startTime.GetTime();로를 제공 할 필요가있을 때 하나 개의 상황을 가지고 있지만, 한 컴파일러는 자동으로 32 비트 유형을 64 비트 유형으로 변환합니까? 다른 방법을 사용하면 정밀도가 떨어지는 것에 대한 경고가 발생하지만 32에서 64 비트로 변환하면 문제가되지 않습니다. 그것을 시험하고, 그것이 작동하지 않으면 다시 오십시오.

+0

네, 맞습니다. 하지만 __time32_t 형식으로 제공해야 할 상황이 있습니다. – Cynede

+0

@nCdy '__time32_t'에 명시 적 캐스트를 추가하여 경고를 제거 할 수는 있지만 캐스트를하는 이유에 대한 설명을 추가하는 것이 좋습니다. 그리고 아마도 2038 년 1 월 18 일 이후에는 작동하지 않는다는 메모가 있습니다. :) –

+0

2038 년 1 월 무엇이 잘못 되었나요?) – Cynede

관련 문제