출처: 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( …

Read More