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

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


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


相关推荐

  • C#彩色扭曲验证码

    C#彩色扭曲验证码该验证码生成类集合了网上大部分的验证码生成类的精华,并多次改进,现在已经形成了可在生产环节中使用的验证码。该验证码加入了背景噪点,背景噪点曲线和直线,背景噪点文字以及扭曲,调暗,模糊等。完全可以实现防识别。按照国际惯例先贴张效果图吧:#region验证码生成类//////验证码生成类///

    2022年7月21日
  • administrator改名字_计算机名和用户名

    administrator改名字_计算机名和用户名重命名计算机必须以管理员或Administrators组成员身份登录才能完成该过程。如果计算机与网络连接,则网络策略设置也可以阻止您完成此步骤。在控制面板中打开系统。在“计算机名称”选项卡,单击“更改”。在“计算机名”下键入计算机的新名称,然后单击“确定”。如果计算机是域的成员,则提示您提供用户名和用户密码才能重命名域中的计算机。注意要打开“系统”,请单击“开始”,指向“设置”,单击“控制面…

    2022年10月14日
  • VB.Net程序设计:分页控件

    VB.Net程序设计:分页控件参考网络上大牛的文章,特别感谢伍华聪,分享了许多分页的文章。无论什么类型的数据库,数据量大了就需要分页,数据量大了,就要考虑分页的效率等。效率在此不做分析。分页控件支持不同类型数据库如:MSSQLServerMySQLSQLiteAccess等,只要有分页SQL语句,即可根据vb.net教程分页信息,取出相应的数据内容,再将数据内容绑定或者加工显示到UI上。分页控件需要做的事:显示页面信息。可以随意跳转到指定的页。根据页面信息返回具体的SQL分页语句。返回取出的数据内容。分页控件

    2022年9月1日
  • 微信企业号根据错误码返回错误信息类封装

    微信企业号根据错误码返回错误信息类封装微信企业号根据错误码返回错误信息类封装

    2022年5月1日
  • java的hashmap用法_java hash函数

    java的hashmap用法_java hash函数摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Java为数据结构中的映射定义了一个接口java.util.Map,…

    2022年9月10日
  • matlab循环求和_r语言for循环计算求和

    matlab循环求和_r语言for循环计算求和题目描述编写程序求和S=a+aa+aaa+aaaa+…,其中a是1-9中的一个数字。n为一正整数,a和n均从键盘输入。(例如输入n为4,a为2,S=2+22+222+2222)输入两行整数,分别表示a,n输出一个整数样例输入Copy24样例输出Copy2468程序代码a=input(”);n=input(”);temp=0;sum=0;fori=1:ntemp=temp*10+a;sum

    2022年10月6日

发表回复

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

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