8

私はwindows.hをインクルードしており、vs2010でInterlockedAddを使用したいのですが、「識別子が見つかりません」というエラーをコンパイルしますが、InterlockedIncrementうまく機能します。私は使用しようとします:

#include <intrin.h>
#pragma intrinsic(_InterlockedAdd) 

そしてコンパイルエラー:

警告 C4163: '_InterlockedAdd': 組み込み関数として使用できません
1>test10.cpp(107): エラー C3861: 'InterlockedAdd': 識別子が見つかりません

コードの何が問題になっていますか?

4

1 に答える 1

16

このInterlockedAdd関数は、Itanium プラットフォームでのみ使用できます。x86 および x86-64 プラットフォームでは、代わりに使用できますInterlockedExchangeAdd。これもターゲット変数に値を追加しますが、新しい値ではなく元の値を返します。

于 2013-01-30T12:10:38.920 に答える