如何在 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? 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐

  • 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 中似乎存