sig*_*igy 8 c++ windows winapi c++17
这是TryAcquireSRWLock*和_WIN32_WINNT的后续问题
由于Windows SDK 8.1及更新版本(至少目前为10.0.16299.0)中存在一个错误,因此可以使用针对Windows Vista或Windows Server 2008的编译方法TryAcquireSRWLockShared和TryAcquireSRWLockExclusive.这会导致应用程序包含对这些方法的调用无法在Windows Vista或Windows Server 2008上执行,因为它们最终只能从Windows 7或Windows Server 2008 R2开始提供.
似乎Windows SDK 8.1 中std :: shared_mutex的实现使用了TryAcquireSRWLockShared和TryAcquireSRWLockExclusive.因此,使用std :: shared_mutex会导致应用程序无法在Windows Vista或Windows Server 2008上执行.
文档还说明
警告
从Visual Studio 2015开始,C++标准库同步类型基于Windows同步原语,不再使用ConcRT(目标平台为Windows XP时除外).<shared_mutex>中定义的类型不应与任何ConcRT类型或函数一起使用.
但是,当使用平台工具集v140_xp时,编译器会抱怨根本不知道std :: shared_mutex.
如何使用std :: shared_mutex并仍然以Windows Vista或Windows Server 2008为目标?
归档时间: |
|
查看次数: |
172 次 |
最近记录: |