C++ 개발
time_t 와 InterlockedExchange 사용금지 (Visual Studio 2005 변경)
kyuseo
2007. 12. 28. 19:24
개요.. |
InterlockedExchange는 스레드(Thread)에 안전하게 32bit( INT, LONG, DWORD )형 변수를 교환하는 함수입니다.
Visual C++ 6.0 에서는 time_t 자료 형이 4 바이트이지만 Visual Studio 2005에서는 8바이트로 변경되었습니다.
따라서 InterlockedExchange에서는 time_t 자료 형의 변수를 사용하면 안됩니다.
코드 |
int n = sizeof(time_t ); // n == 8
InterlockedExchange( ( long* ) &m_ttReceive, ( long ) time( NULL ) );
time_t 에서는 이와 같은 InterlockedExchange 는 더이상 쓰면 안됩니다. |