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

2024-02-28

这是一个后续问题TryAcquireSRWLock* 和 _WIN32_WINNT https://stackoverflow.com/q/49317541/

Windows SDK 8.1 及更高版本(至少当前的 10.0.16299.0)中似乎存在一个错误,使得这些方法尝试获取SRWLockShared https://technet.microsoft.com/en-us/library/dd405524.aspx and 尝试获取SRWLockExclusive https://msdn.microsoft.com/en-us/library/windows/desktop/dd405523(v=vs.85).aspx可用于针对 Windows Vista 或 Windows Server 2008 的编译。这会导致包含对这些方法的调用的应用程序无法在 Windows Vista 或 Windows Server 2008 上执行,因为它们最终只能从 Windows 7 或 Windows Server 2008 R2 开始使用。

看来实施std::shared_mutex https://learn.microsoft.com/en-us/cpp/standard-library/shared-mutex在 Windows SDK 8.1 中使用尝试获取SRWLockShared https://technet.microsoft.com/en-us/library/dd405524.aspx and 尝试获取SRWLockExclusive https://msdn.microsoft.com/en-us/library/windows/desktop/dd405523(v=vs.85).aspx。因此使用std::shared_mutex https://learn.microsoft.com/en-us/cpp/standard-library/shared-mutex导致应用程序无法在 Windows Vista 或 Windows Server 2008 上执行。

该文档还指出

Warning

从 Visual Studio 2015 开始,C++ 标准库 同步类型基于 Windows 同步原语 并不再使用ConcRT(除非目标平台是Windows XP)。 中定义的类型不应与任何 ConcRT 类型或函数。

但是,当使用平台工具集 v140_xp 时,编译器抱怨不知道std::shared_mutex https://learn.microsoft.com/en-us/cpp/standard-library/shared-mutex at all.

我该如何使用std::shared_mutex https://learn.microsoft.com/en-us/cpp/standard-library/shared-mutex并且仍以 Windows Vista 或 Windows Server 2008 为目标?


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Vista/Server 2008 上使用 std::shared_mutex? 的相关文章

  • Caliburn.Micro - ShowDialog() 如何关闭对话框?

    EDIT 新信息 刚刚设法让记录器工作 老实说 我不知道 cm 有一个 并且在尝试使用时收到此消息TryClose TryClose requires a parent IConductor or a view with a Close m
  • 生成多个随机数

    我想生成 25 个唯一的随机数并将它们列在控制台中 数字的长度应至少为 10 个字符 有什么简单的方法可以做到这一点吗 尝试将数字构建为字符串 并使用 HashSet 确保它们是唯一的 Random random new Random Ha
  • ASP.NET Web 应用程序中的身份验证遇到问题

    我正在尝试对从登录页面登录我的 Web 应用程序的用户进行身份验证 我正在使用本教程 http support microsoft com kb 301240作为指南 它几乎准确地解释了我希望做什么 但是当我输入用户名和密码时 验证不起作用
  • Go 编译器有窗口化设置选项吗?

    我正在使用 Go 6g 编译 GTK 应用程序 我想知道是否有编译器 链接器选项使其成为 Windows 可执行文件而不是控制台可执行文件 MinGW 有一个 mwindows 选项来实现此目的 目前我必须使用十六进制编辑器手动更改 PE
  • 警告 C4800:“int”:强制值为 bool“true”或“false”(性能警告)

    我的代码中有这个问题 bool CBase isNumber return id MID NUMBER bool CBase isVar return id MID VARIABLE bool CBase isSymbol return i
  • 局部函数声明有什么用处吗?

    大多数像我这样的 C 程序员都曾犯过以下错误 class C int main C c declares a function c taking no arguments returning a C not as intended by m
  • 为什么子函数不销毁GtkWindow?

    这是我的代码 void window first void enter window2 GtkWidget w gpointer data void quit GtkWidget w gpointer data void quit int
  • C# 无法捕获 SerializationException

    我的程序在加载序列化文件的部分遇到问题 如果文件无法反序列化 我希望很好地失败 但由于某种原因 我的程序将中断而不是进入 catch 子句 这是我的代码 using FileStream fs new FileStream openFile
  • ContentDialog 未与 UWP 中心对齐

    据我所知 ContentDialog的默认行为应该是使其在 PC 上居中并在移动设备上与顶部对齐 但就我而言 即使在 PC 上我也将其与顶部对齐 但我不明白发生了什么 我正在使用代码隐藏来创建它 这是我正在使用的代码片段 Creates t
  • 组合框下拉位置

    我有一个最大化的表单 其中包含 500px 的组合框控件 停靠在右上角 Width 尝试打开组合框后 列表的一半超出了屏幕 如何强制列表显示在表单中 棘手的问题 我找不到解决这个问题的好办法 只是一个解决方法 添加一个新类并粘贴如下所示的代
  • 对作为函数参数传递的指针使用删除

    删除作为函数参数传递的指针是否可以 并且合法 如下所示 include
  • 如何自定义 Google 测试失败消息?

    我编写了一个如下所示的 Google 测试 它将一些计算值与 CSV 文件中预期存储的值进行比较 class SampleTest public testing Test public void setupFile const std st
  • 如何从外语线程调用Python函数(C++)

    我正在开发一个程序 使用 DirectShow 来抓取音频数据 媒体文件 DirectShow 使用线程将音频数据传递给回调 我的程序中的函数 然后我让该回调函数调用另一个函数 Python 中的函数 我使用 Boost Python 来包
  • 传递数组时在 C 中的函数参数中强制指定数组大小

    Context 在 C 中 我有一个以数组作为参数的函数 该参数用作该函数的输出 输出的大小始终相同 我会 让阅读代码的人清楚所需的大小 不过它已经在函数注释中了 理想情况下 编译会输出警告或错误 这样我就可以在编译时而不是运行时防止出现问
  • Type.GetInterfaces() 仅适用于声明的接口

    首先 像这样的问题有很多 也许有些OP甚至在问同样的问题 问题是这些问题的答案 无论是否接受 都没有真正回答这个问题 至少我找不到 如何确定类直接声明的接口 而不是由父级或声明的接口继承的接口 e g interface I interfa
  • C++ 中是否有与 PHP 的explode() 函数等效的函数? [复制]

    这个问题在这里已经有答案了 可能的重复 在 C 中分割字符串 https stackoverflow com questions 236129 splitting a string in c 在 PHP 中 explode 函数将获取一个字
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的
  • 具有四个 && 的 LINQ Where 子句

    我正在尝试在Where 子句中创建一个带有4 个参数的LINQ 查询 这是一个 Windows 8 应用程序项目 我正在使用 SQLite 数据库 SQLite 实现 https github com praeclarum sqlite n
  • 从脚本启用/禁用 GameObject 组件 [Unity3D]

    我需要获取一个脚本中设置的布尔值 放入名为 bouclier 的变量 以启用或禁用游戏对象 该变量位于游戏对象 Player 中 此处右下角 我需要启用或禁用这个游戏对象 Bouclier01 为此 我将脚本附加到游戏对象 Bouclier
  • 使用 CodeDOM 将程序集添加到 BuildManager 会导致间歇性错误

    我正在使用 CodeDOM 在运行时创建内存中程序集 如下所示 public Assembly Compile CodeCompileUnit targetUnit string path Path GetDirectoryName new

随机推荐

  • JavaScript:如何动态“过滤”我的对象

    我如何使用 JavaScript filter 属性作为过滤器我的 JavaScript 对象 我一直在阅读以下内容StackOverflow 帖子 https stackoverflow com questions 1694717 jav
  • 如何使用 Firefox Addon Builder 记录选定的文本?

    我遵循了几个教程但没有成功 我认为这是一个经典的例子 但我无法让它发挥作用 我可以保存我的项目 安装插件 当我选择一些文本时 我可以看到上下文菜单项 日志选择 但是当我单击它时 什么也没有发生 exports main function v
  • jquery 上下文选择器与 .find()

    什么更有效 var container container 1 var links1 container find a 2 var links2 a container 我个人比较喜欢 a container 因为看起来更好 但是它们的性能
  • Makefile `echo -n' 不起作用

    我试图让我的 Makefile 回显文本而不带尾随换行符 但我做不到 我在 OS X 上遇到了这种行为 在 Linux 上一切都按预期工作 Makefile a echo n hello b echo n hello c bin echo
  • 根据控制器响应动态更改视图部分

    我正在寻找以下场景的最佳方法建议 用户可以选择一个或多个 csv 文件进行验证 附件 1 单击 验证 按钮会执行验证代码 显示进度条 直到返回输出 返回响应可以是成功消息 也可以是选择验证的每个文件的错误详细信息 附件 2 现在可以使用 上
  • Makefile:目标依赖项 - 如何始终制作它?

    This will most probably be obvious and or a banality But since I am trying different approaches for hours without succes
  • Entity Framework 4 生成的查询正在连接完整表

    我有两个实体 Master 和Details 当我查询它们时 对数据库的查询结果是 SELECT Extent2 needed columns listed here Extent1 needed columns listed here F
  • 将自定义视图添加到工具栏

    我现在正在与 Cocoa 斗争两个小时 但没有成功 我想向工具栏添加自定义视图 因此 我向窗口添加了一个 NSToolbar 使用 IB 并添加了我的视图 效果完美 IB自动创建了一个NSToolbarItem 我按照苹果的说明进行操作 h
  • 将 Sencha Touch 与 jQuery 相结合

    我已经在 Sencha Touch 工作了几个星期 虽然这个框架非常强大 但我仍然发现它有一些难以使用的地方 特别是用于复杂嵌套 JSON 结果的 JSONP 数据存储 因此 我决定结合 jQuery 有用的 AJAX 和 JSON 函数
  • 拉直 B 样条线

    我插入了一条样条曲线 以将图像中的像素数据与我想要拉直的曲线相匹配 我不确定什么工具适合解决这个问题 有人可以推荐一种方法吗 这是我获取样条线的方法 import numpy as np from skimage import io fro
  • 有什么理由将 out 参数与 C# 7 元组返回值一起使用? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我刚刚观看了一个介绍C 7的新特性 https www youtube com watch v 5ju2MuqKf 8 除此之外 它引入了返回元
  • 内置对象/库的静态初始化顺序惨败

    如果我有一些静态初始化的变量 在main开始 我可以自由使用这些构造函数中的任何内置内容吗 例如
  • 使用php连接外部mysql数据库

    服务器之间可以连接mysql数据库吗 我的意思是 假设我在 2 个不同的托管服务上有 2 个帐户 其中一个有数据库 我想用 php 从另一个帐户连接它 当我尝试时 我收到 警告 mysql connect function mysql co
  • C++ 中的最小浮点正值

    C 中乘法逆元仍然有限的最小正值是多少 试过numeric limits
  • 在线验证antlr语法[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道是否存在某种用于antlr语法的在线测试环境 我可以在其中针对某些输入字符串验证和测试给定的语
  • (如何)我可以在 Docker 容器中运行 Windows Defender 吗?出现错误[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我正在为 Windows 环境的端点笔测试实验室尝试一些选项 Docker 似乎是一个非常轻量级且易于配置的选项 然而 在这个设置中测
  • 如何在 JavaScript 或 jQuery 中进行 ping 操作?

    我想用 Javascript 创建一个类似游戏的 ping 就像 反恐精英 游戏一样 我正在对服务器 MySQL 进行 AJAX 调用 并想要计算所花费的时间 但我要么计算错误 要么对 ping 的想法有误 这是我到目前为止的代码 var
  • 如何在 reify 子句中使用 Scala 宏中计算的类型?

    我一直在使用 Scala 宏 并在宏中包含以下代码 val fieldMemberType fieldMember typeSignatureIn objectType match case NullaryMethodType tpe gt
  • 如何使用 BlockingScheduler 每 10 分钟运行一次任务 5 秒?

    我试图每 10 分钟运行一次任务 例如 5 点 13 15 13 25 但是 它不起作用 该服务每小时仅运行一次 即中午 12 点至下午 4 点 sched add job run batch cron day of week mon fr
  • 如何在 Vista/Server 2008 上使用 std::shared_mutex?

    这是一个后续问题TryAcquireSRWLock 和 WIN32 WINNT https stackoverflow com q 49317541 Windows SDK 8 1 及更高版本 至少当前的 10 0 16299 0 中似乎存