InitializeCriticalSectionEx 不是 atlwinverapi.h 中全局命名空间的成员
InitializeCriticalSectionEx is not member of global namespace in atlwinverapi.h
我最近从 vs 2013 转移到 vs 2017。我们有这个项目有这些预处理器定义:
WIN32
DRG_BUILD_DLL
WINVER=0x0600
现在在 atlwinverapi.h
中,我收到此错误,指出 InitializeCriticalSectionEx
不是全局命名空间的成员。任何想法为什么会发生这个问题?
#if (NTDDI_VERSION >= NTDDI_VISTA) && !defined(_USING_V110_SDK71_) && !defined(_ATL_XP_TARGETING)
// InitializeCriticalSectionEx is available in Vista or later, desktop or store apps
return ::InitializeCriticalSectionEx(lpCriticalSection, dwSpinCount, Flags);
我也遇到了这个错误,因为包含了 header(为 MSVC12 编写)
#define _WIN32_WINNT 0x502 //NTDDI_VERSION
修复方法是删除此行。
这修复了它,因为 C:\Program Files (x86)\Windows Kits\Include.0.15063.0\um\synchapi.h
包含
#if (_WIN32_WINNT >= 0x0600)
InitializeCriticalSectionEx(
_Out_ LPCRITICAL_SECTION lpCriticalSection,
_In_ DWORD dwSpinCount,
_In_ DWORD Flags
);
#endif // (_WIN32_WINNT >= 0x0600)
我最近从 vs 2013 转移到 vs 2017。我们有这个项目有这些预处理器定义:
WIN32
DRG_BUILD_DLL
WINVER=0x0600
现在在 atlwinverapi.h
中,我收到此错误,指出 InitializeCriticalSectionEx
不是全局命名空间的成员。任何想法为什么会发生这个问题?
#if (NTDDI_VERSION >= NTDDI_VISTA) && !defined(_USING_V110_SDK71_) && !defined(_ATL_XP_TARGETING)
// InitializeCriticalSectionEx is available in Vista or later, desktop or store apps
return ::InitializeCriticalSectionEx(lpCriticalSection, dwSpinCount, Flags);
我也遇到了这个错误,因为包含了 header(为 MSVC12 编写)
#define _WIN32_WINNT 0x502 //NTDDI_VERSION
修复方法是删除此行。
这修复了它,因为 C:\Program Files (x86)\Windows Kits\Include.0.15063.0\um\synchapi.h
包含
#if (_WIN32_WINNT >= 0x0600)
InitializeCriticalSectionEx(
_Out_ LPCRITICAL_SECTION lpCriticalSection,
_In_ DWORD dwSpinCount,
_In_ DWORD Flags
);
#endif // (_WIN32_WINNT >= 0x0600)