首页 > 编程语言 >Qt中使用c#和std的mutex出现冲突

Qt中使用c#和std的mutex出现冲突

时间:2023-01-06 11:36:45浏览次数:60  
标签:std Qt c# mu 编译 mutex https

本人想在Qt项目中使用c#的一些功能,Qt代码中原本用的std::mutex。pro文件添加上托管编译后,一编译就报错:std里面没有mutex.

一开始以为是std冲突,但是怎么改都没用,包括修改头文件,重命名变量,修改引用名空间的位置等,都是无用功。弄了老久,实在找不出问题,就使用vs2015打开Qt项目进行编译。

错误	C1189	#error:  <mutex> is not supported when compiling with /clr or /clr:pure. (编译源文件 widget.cpp)	softpro	C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\mutex	9

网上找了找,大都是2014年左右的帖子了。回答千篇一律,都是复制粘贴的一个回答,在此贴出好访问的一个链接:https://oomake.com/question/4474586

接口什么的,本人也没试过,不知道行不行,就作为参考。

后来参考了这个博客,改了mutex和thread源代码,还是没用。这里也贴出来作为参考。https://blog.csdn.net/wenming111/article/details/103731896

继续搜索问题:c++ fatal error C1189: #error

image-20230106110944263

修改项目属性,还是没用。

最后想着,干脆改成C#里面的互斥锁算了。不过在此之前,先尝试了一些Qt自带的QMutex.

终于出现了区别,起码问题变得不一样了。

namespace'::escape_string": 此函数不能编译为托管,请考虑使用 #pragma 非托管

百度这个问题,找到了这篇帖子,这就是我想要的。https://www.cnblogs.com/carl2380/archive/2010/12/24/1915723.html 里面的场景四。

以下代码为原来的

#include<mutex>
void hello()
{
	static std::mutex mu;
	mu.lock();
	mu.unlock();
}

以下代码为修改后的。

#include <QMutex>
#pragma unmanaged
void hello()
{
	static QMutex mu;
	mu.lock();
	mu.unlock();
}
#pragma managed

太厉害了,这个预处理指令,轻松解决问题。

标签:std,Qt,c#,mu,编译,mutex,https
From: https://www.cnblogs.com/dayq/p/17029850.html

相关文章

  • centos 绑定多ip
    复制ifcfg-ens192文件,为ifcfg-ens192:0修改ip和device为“ens192:0”,其他不变,servicenetworkrestart,可能会断网,需要重启2次。 ens192:0 若需要增加更多的......
  • 『高级篇』docker容器来说微服务导学(一)
    gcloud,重点是落地,之前的CICD涉及的面有老铁说最后镜像部署没说,我说高级一定补上的!微服务微服务最近几年比较火,不了解也没关系,可以理解成一个项目的模块吧,微服务运行在docke......
  • 『中级篇』在centos上安装docker(九)
    ​在mac和window上都已经安装了docker,这次咱们在linux系统下安装docker。这次也补充下vagrant如何搜索:Vagrantfile如何搜Vagrantfile之前的课程已经已经完成了在windows/mac......
  • 【集合】LeetCode 73. 矩阵置零
    题目链接73.矩阵置零思路1遍历矩阵,分别使用集合row和column记录值为0的行和列。最后将row和column所记录的行和列置为零。空间复杂度:\(O(m+n)\)代码1cla......
  • 『中级篇』docker Image概述(13)
    什么是镜像,镜像是怎么产生的,通过这节的学习的Dockercontainer机制要比虚拟机的机制要小巧,原因何在?本节课程的内容是连接12节的,所以肯定跟12节的github有关系:​​https://g......
  • [JavaScript]分解url参数
    分解页面url传入参数转载:来自https://www.jianshu.com/p/6dd040f6800dfunctioninit_params(){varurl=location.search;//获取url中"?"符后的字串......
  • 我在京东做研发 | 京东云算法科学家解析爆火的ChatGPT
    令人惊艳的ChatGPT横空出世背后有怎样的前沿技术支撑走向大规模产品应用又有何局限深耕对话式AI技术十余年京东云算法科学家将带您一同走进技术世界解析ChatGPT的技术......
  • 『中级篇』docker之CI/CD持续集成—GitLab CI服务器(71)
    个人原因,jeakins网上到处都是资料,怼gitlabci更加熟悉。gitlab和gitlab之前集成非常好的,这是不用质疑的。介绍下gitlabci,不弱于jeakins,很多方面比jeakins对gitlab集成更强......
  • 『中级篇』docker之CI/CD持续集成—真实Python项目的CI演示(72)
    ​上次主要说了在githubCI的服务器,并且也演示了github的runner执行CICD,这次通过真实的python项目来演示下CICD。项目通过gitlab和gitlabCI进行CICD。源码地址:​​​https:/......
  • docker部署tomcat
    前置条件:docker已安装,jdk已安装 1、拉取tomcat镜像:dockerpulltomcat:8.52、启动容器:dockerrun-d-p8080:8080--nametomcattomcat3、此时在网站上输入IP:8080......