InterlockedExchange Visual Studio 2010 Встроенная - PullRequest
2 голосов
/ 25 января 2012

Я включил встроенные функции в настройках оптимизации для компилятора, однако результирующий код для InterlockedExchange генерирует вызовы в kernel32.dll, а не создает встроенную сборку.Это особенно проблематично, поскольку эта функция недоступна в версиях Windows, предшествующих Vista.

Документация MSDN сообщает " Эта функция реализована с использованием встроенной функции компилятора, где это возможно ».Можно ли заставить компилятор использовать собственный встроенный код для InterlockedExchange?

1 Ответ

3 голосов
/ 25 января 2012

для встроенных встроенных функций требуется префикс подчеркивания (или #pragma intrinsic), поэтому вы хотите использовать _InterlockedExchange, вам также потребуется включить intrin.h

также, вы полностью прочитали свою цитату, там написано:

Эта функция реализована с использованием встроенного компилятора, где возможный. Для получения дополнительной информации см. Заголовочный файл Winbase.h и _InterlockedExchange .

...