添加 _AFXDLL 宏和 clr 支持后找不到 InterlockedAdd64

InterlockedAdd64 can't be found after adding _AFXDLL macro and clr support

我添加了 _AFXDLL 宏并得到以下两个错误:

error C2039: 'InterlockedAdd64': is not a member of '`global namespace''
error C3861: 'InterlockedAdd64': identifier not found

原因是什么以及如何解决这个问题?

我 运行 在尝试为使用 MFC 的 DLL 添加 c++/clr 支持时遇到了这个问题。

如果我想使用 clr 支持,看来我运气不好:

MSDN: _MANAGED Defined as 1 when the /clr compiler option is set. Otherwise, undefined.

来自winnt.h:

#if !defined(_MANAGED)

#if (_MSC_VER >= 1600)

...

FORCEINLINE
LONG64
_InterlockedAdd64 (
    _Inout_ _Interlocked_operand_ LONG64 volatile *Addend,
    _In_ LONG64 Value
    )
{
...
}

#define InterlockedAdd64 _InterlockedAdd64
...

#endif // !defined(_MANAGED)