gpt4 book ai didi

c++ - 如何在 Vista/Server 2008 上使用 std::shared_mutex?

转载 作者:可可西里 更新时间:2023-11-01 12:52:31 25 4
gpt4 key购买 nike

这是 TryAcquireSRWLock* and _WIN32_WINNT 的后续问题

Windows SDK 8.1 和更新版本(至少是当前的 10.0.16299.0)中似乎存在错误,使得方法 TryAcquireSRWLockSharedTryAcquireSRWLockExclusive可用于针对 Windows Vista 或 Windows Server 2008 的编译。这会导致包含对这些方法的调用的应用程序无法在 Windows Vista 或 Windows Server 2008 上执行,因为它们最终只能从 Windows 7 或 Windows Server 2008 R2 开始使用。

似乎执行std::shared_mutex在 Windows SDK 8.1 中使用 TryAcquireSRWLockSharedTryAcquireSRWLockExclusive .因此使用 std::shared_mutex使应用程序无法在 Windows Vista 或 Windows Server 2008 上执行。

文档还指出

Warning

Beginning in Visual Studio 2015, the C++ Standard Library synchronization types are based on Windows synchronization primitives and no longer use ConcRT (except when the target platform is Windows XP). The types defined in <shared_mutex> should not be used with any ConcRT types or functions.

但是,当使用平台工具集 v140_xp 时,编译器会提示不知道 std::shared_mutex完全没有。

如何使用 std::shared_mutex并且仍然以 Windows Vista 或 Windows Server 2008 为目标?

最佳答案

我认为你不能。但是您可以使用替代实现。有 boost::shared_mutex。或者,如果您使用的是 Qt,则可以使用 QReadWriteLock。

关于c++ - 如何在 Vista/Server 2008 上使用 std::shared_mutex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49325813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com