InterlockedIncrement: идентификатор не найден, ошибка в Visual C ++ 2008

привет, я скомпилировал указанный ниже код

long (*interlocked_increment) (volatile long *);
long InterlockedIncrement(volatile long & value) const {
return interlocked_increment(&value);
}
static long m_interlocked_increment(volatile long * pv) {
#ifdef WIN32
return InterlockedIncrement(pv);
#elif defined(HAS_SYNC_FUNCTIONS)
return __sync_fetch_and_add(pv, 1L);
#else
return ++(*pv);
#endif
}

в компиляторе g ++ это будет работать нормально. но хотя я пытаюсь сделать то же самое в Visual C ++ 2008, он показывает нижеуказанную ошибку. Как я могу решить эту проблему.

Ошибка 5 ошибка C3861: «InterlockedIncrement»: идентификатор не найден

1

Решение

InterlockedIncrement() функция занимает volatile long &в то время как вы передаете это volatile long *таким образом, компилятор не может найти соответствующую сигнатуру функции.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]