字体
第(1/5)页
关灯
   存书签 书架管理 返回目录
    数CreateMutex 用来创建或打开有名或无名的Mutex 对象。如果调用成功,函数返回

    创建后对象的句柄。如果同名Mutex 对象在创建之前就已经存在,则函数返回现有的对象的

    句柄,并且GetLastError 函数返回ERROR_ALREADY_EXISTS。否则返回创建的Mutex 对

    象句柄。如果调用失败,返回空值。它的函数原型如下:

    HANDLE CreateMutex(

    LPSECURITY_ATTRIBUTES lpMutexAttributes,

    BOOL bInitialOwner,

    LPCTSTR lpNcom

    );

    函数中主要参数的意义如下。

    ? lpMutexAttributes:指向SECURITY_ATTRIBUTES 结构的指针,决定返回的句柄是否

    可以被子进程继承。如果为空,则不能被继承。

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·240·

    ? bInitialOwner : 指定Mutex 对象的初始拥有者。如果调用者创建Mutex 并且

    bInitialOwner 为TRUE,调用线程获得Mutex 对象的拥有权。否则,调用线程不拥有

    Mutex 的所有权。

    ? lpNcom:Mutex 对象的名称。字符串的最大长度为MAX_PATH 个字符。字符串区分

    大小写。如果lpNcom 和一个现有的Mutex 对象重名,函数需要对已有的对象有

    MUTEX_ALL_ACCESS 的访问权。这种情况下,参数bInitialOwner 被忽略,因为此

    时它已经被已有的进程初始化。如果lpMutexAttributes 非空,它决定句柄是否可以被

    继承,但是它的安全描述成员被忽略。如果lpNcom 为空,创建的Mutex 对象没有名

    称。

    (2)OpenMutex

    函数OpenMutex 用来打开一个存在的有名称的Mutex 对象。如果调用成功,返回打开的

    对象的句柄。反之则返回空值。它的函数原型如下:

    HANDLE OpenMutex(

    DWORD dwDesiredAccess,

    BOOL bInheritHandle,

    LPCTSTR lpNcom

    );

    函数主要参数的意义。

    ? dwDesiredAccess:指定希望对Mutex 对象进行的访问类型。可以是下面值的组合:

    · MUTEX_ALL_ACCESS:可以对Mutex 对象进行所有访问。

    · SYNCHRONIZE:允许任何等待函数获得Mutex 对象的所有权。

    ? bInheritHandle:指定返回的句柄是否可以被继承。

    ? lpNcom:要打开的Mutex 对象的名称。

    (3)ReleaseMutex

    函数ReleaseMutex 释放指定的Mutex 对象的所有权。如果调用线程没有Mutex 对象的所

    有权,则说明调用失败。它的函数原型如
上一章 目录 下一页