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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java+sm4+加密算法_SM4加密算法实现Java和C#相互加密解密

    java+sm4+加密算法_SM4加密算法实现Java和C#相互加密解密SM4加密算法实现Java和C#相互加密解密近期由于项目需要使用SM4对数据进行加密,然后传给Java后台,Java后台使用的也是SM4的加密算法但是就是解密不正确,经过一步步调试发现Java中好多数据类型与C#的相同的数据类型是存在不同的比如:byte在Java中范围是-127~128,而C#中的范围是0~255,这就导致使用C#的加密的明文产生的密文到Java中解密不正确。再一次偶尔的上网中看…

    2022年9月28日
    3
  • 电子元器件采购知识_电子元件购买

    电子元器件采购知识_电子元件购买​本部分内容为“电子元件知识汇总1-封装、电子元件知识汇总2-封装”的扩展,主要侧重于电子元件的品牌以及采购,若需采购厂商参见“电子元件知识汇总3-厂商”,仅供参考。​

    2022年8月24日
    5
  • Object数组转String数组

    Object数组转String数组1、System.arraycopy把一个数组中某一段字节数据放到另一个数组中//src:源数组;srcPos:源数组要复制的起始位置;dest:目的数组;destPos:目的数组放置的起始位置;length:复制的长度.publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)Object[]src={“A”,”B”,”C”};String[]dest=

    2022年5月4日
    40
  • 对数及运算法则_log公式运算法则

    对数及运算法则_log公式运算法则1.对数源于指数,是指数函数反函数因为:y=ax所以:x=logay2.对数的定义【定义】如果N=ax(a>0,a≠1),即a的x次方等于N(a>0,且a≠1),那么数

    2022年8月1日
    2
  • oa流程表单制作_日历日程表模板

    oa流程表单制作_日历日程表模板APICloud开发者进阶之路 |纯手工编写日程表功能

    2022年4月22日
    59
  • PS命令大全

    PS命令大全简介 Linux 中的 ps 命令是 ProcessStatu 的缩写 ps 命令用来列出系统中当前运行的那些进程 ps 命令列出的是当前那些进程的快照 就是执行 ps 命令的那个时刻的那些进程 如果想要动态的显示进程信息 就可以使用 top 命令 要对进程进行监测和控制 首先必须要了解当前进程的情况 也就是需要查看当前进程 而 ps 命令就是最基本同时也是非常强大的进程查看命令 使用该命令可以确定有哪些进程正在运

    2025年7月26日
    3

发表回复

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

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