c++使用了未定义类型_c++如何新建

c++使用了未定义类型_c++如何新建一、定义HANDLECreateMutex(LPSECURITY_ATTRIBUTESlpMutexAttributes,//指向安全属性的指针BOOLbInitialOwner,//初始化互斥对象的所有者LPCTSTRlpName//指向互斥对象名的指针);第一个参数是一个指向SECURITY_ATTRIBUTES结构体的指针,一般的情况下,可以是nullptr。第二个参数类型为BOOL,表示互斥锁创建出来后是否被当前线程持有。第三个参数类型为字符串(con

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、定义

HANDLE CreateMutex(
LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针
BOOL bInitialOwner, // 初始化互斥对象的所有者
LPCTSTR lpName // 指向互斥对象名的指针
);

第一个参数是一个指向SECURITY_ATTRIBUTES结构体的指针,一般的情况下,可以是nullptr。

第二个参数类型为BOOL,表示互斥锁创建出来后是否被当前线程持有。

第三个参数类型为字符串(const TCHAR*),是这个互斥锁的名字,如果是nullptr,则互斥锁是匿名的。

例: HANDLE hMutex = CreateMutex(nullptr, FALSE, nullptr);上面的代码创建了一个匿名的互斥锁,创建出来后,当前线程不持有这个互斥锁。

二、实例

 

#include <windows.h>

class CLock
{

public:
	CLock() :_mutex(NULL)
	{
		this->_mutex = CreateMutex(NULL, FALSE, TEXT("_temp_mutex_lock"));
	}

	virtual ~CLock()
	{
		if (this->_mutex)
		{
			CloseHandle(this->_mutex);
			this->_mutex = NULL;
		}
	}

	CLock(const CLock& mutex) { *this = mutex; }

	CLock& operator=(const CLock& other)
	{
		if (this != &other)
		{
			this->_mutex = other._mutex;
		}
		return *this;
	}
private:
	HANDLE _mutex;

public:
	void Lock()
	{
		WaitForSingleObject(this->_mutex, INFINITE);
	}


	void UnLock()
	{
		ReleaseMutex(this->_mutex);
	}

};

参考:

https://blog.csdn.net/enterlly/article/details/79158920

https://blog.csdn.net/xialianggang1314/article/details/78477451

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185885.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月4日 下午9:46
下一篇 2022年10月4日 下午9:46


相关推荐

  • LangChain1.0实战之多模态RAG系统(一)——多模态RAG系统核心架构及智能问答功能开发

    LangChain1.0实战之多模态RAG系统(一)——多模态RAG系统核心架构及智能问答功能开发

    2026年3月13日
    3
  • Ubuntu卸载java

    Ubuntu卸载java先检查是否安装 dpkglist grep ijdk 移除 openjdk 包 apt getpurgeopen 卸载 OpenJDK 相关包 apt getpurgeiced openjdk 再次检查是否卸载成功 dpkglist grep ijdk

    2026年3月18日
    2
  • 简图记录-曾国藩家训 观后感「建议收藏」

    简图记录-曾国藩家训 观后感「建议收藏」简图记录 总结~材料 郦波教授的百家讲坛 和 部分相关书籍  一个人疑惑的时候,总是希望通求知如过阅读找到自己的答案,读史可以使人明智,历史总是有借鉴意义,相对于空谈鸡汤无疑更有说服力。我认为向周围的人学习是个人成长一个非常重要的手段,周围的人都是真实的而且在一定范围是可交流讨论的,相对一些当代的名人 他们的事迹往往都是经过加工 或 胡编 鸡汤意味更浓一些,那么另外一条路就是找一些古代的贤…

    2022年6月4日
    36
  • goeasy小demo

    goeasy小demo1 java 平台发布 1 1 引入 maven 依赖 极有可能会下载失败 自己手动下载 jar 包 lt repositories gt lt repository gt lt id gt goeasy lt id gt lt name gt goeasy lt name gt lt url gt http

    2026年3月18日
    1
  • 二维vector初始化方法

    二维vector初始化方法方法 1 include iostream include vector voidmain inta 2 intb 4 初始化方法 1 std vector std vector int gt vec a std vector int b 2 行 4vector vector int gt vec a vector lt vector int int std vector int vector iostream

    2026年3月16日
    2
  • 用计算机亩换算成平方,亩平米换算(平方米换算亩计算器)[通俗易懂]

    1平方米(㎡)=0.0015亩1亩=666.6666667平方米(㎡)平方米(㎡,英文:.方英里=10.763910417平方英尺=0.0015亩单位换算就是把平方米换算成平方分米、平方厘.使用国家规定的换算公式来进行换算。基本单位数量换算(按使用频率排序)。1亩=666.67平方米100平方米=0.15亩——就是农民朋友口语说的一分半地。1000平方米=1..1公顷=100公亩=10000平方…

    2022年4月9日
    434

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号