2014-03-04 11 views
0

windows 98 se에서 일부 응용 프로그램을 실행해야합니다.Windows 98 환경에서 InterlockedCompareExchange

void* InterlockedCompareExchange(void**, void*, void*); 

msdn 그러나 (windows xp 때문에) 이런 식으로 정의 : vc6 이상한 InterlockedCompareExchange 정의가

LONG InterlockedCompareExchange(LONG*, LONG, LONG); 

사람 (나는 원자 연동 변수의 값을 얻을 필요)를 사용하는 방법을 기억 하는가?

+0

IIRC, 그것은 중요하지 않습니다 VC6은'무효 * 단순히 입력 캐스트 필요 사용하는 경우 대부분의 OS들은 실제로 LONG 정의를 사용하지만. – MSalters

+2

@MSalters : 물론 그랬습니다. –

+0

@MSalters'win98'에는 스레드가 있고 다른'Interlocked * '함수도 있습니다. – Ivars

답변

0

Windows 98은 64 비트를 지원하지 않으므로, 과 LONG은 같은 바이트 크기입니다. 어쨌든 win98을 가지고 있지 않은 스레드 :

LONG value; 
LONG ret = (LONG) InterlockedCompareExchange((void**)&value, (void*)ExchangeValue, (void*)CompareValue);