time_t(VC6 -> VC8) DarkKaiser, 2008년 11월 22일2023년 9월 6일 출처: http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=8196&page=1출처: http://a.tk.co.kr/entry/timet-%EC%99%80-InterlockedExchange-%EC%82%AC%EC%9A%A9%EA%B8%88%EC%A7%80-Visual-Studio-2005-%EB%B3%80%EA%B2%BD VC6의 time_t가 long형으로 디파인 되어있는데요. VC8에선 요놈이 __int64이더라구요. c:\Program Files\Microsoft Visual Studio\VC98\Include\TIME.H #ifndef _TIME_T_DEFINED typedef long time_t; /* time value */ #define _TIME_T_DEFINED /* avoid multiple def's of time_t */ #endif //////////////////////////////////////////////////////////////////////////// c:\program files\microsoft visual studio 8\vc\include\crtdefs.h #ifndef _TIME64_T_DEFINED #if _INTEGRAL_MAX_BITS >= 64 typedef __int64 __time64_t; /* 64-bit time value */ #endif #define _TIME64_T_DEFINED #endif DLL과 연결된 콜백함수였는데.. time_t인자 이후로는 값이 이상하게 전달되서 오늘 하루 완전 별짓을 다했네요 ㅎㅎ 에러도 안나구요. 아무 문제없이 컴파일 됩니다. 다만 늘어난 자료형에 따라 그뒤에 변수들 값이 4바이트메모리 만큼 밀린곳의 값을 가져오더라구요 ㅡ.ㅡ;;;;;;;; 맨마지막 변수는 쓰레기값;; ———————— InterlockedExchange는 스레드(Thread)에 안전하게 32bit( INT, LONG, DWORD )형 변수를 교환하는 함수입니다.Visual C++ 6.0 에서는 time_t 자료 형이 4 바이트이지만 Visual Studio 2005에서는 8바이트로 변경되었습니다.따라서 InterlockedExchange에서는 time_t 자료 형의 변수를 사용하면 안됩니다. C/C++/VC++ time_t