我被迫在windows 98 se
中运行一些应用程序。 vc6
有一个奇怪的InterlockedCompareExchange
定义:
void* InterlockedCompareExchange(void**, void*, void*);
msdn
这样定义它(因为windows xp
):
LONG InterlockedCompareExchange(LONG*, LONG, LONG);
有没有人记得如何使用它(我需要自动获取互锁变量的值)?
答案 0 :(得分:0)
Windows 98不支持64位,因此void*
和LONG
的字节大小相同。大多数操作系统实际使用LONG
定义,但如果VC6使用`void *,那么只需在需要的地方输入:
LONG value;
LONG ret = (LONG) InterlockedCompareExchange((void**)&value, (void*)ExchangeValue, (void*)CompareValue);