Vb6 如何在Visual Basic中使用互斥体

Vb6 如何在Visual Basic中使用互斥体,vb6,Vb6,我已经导入了kernel32库。因此,我有可用的createMutex函数,但我不太确定各种参数和返回值 这是经典的Visual Basic,不是Visual Basic.NET,但我可能可以以答案的形式使用这两种语言。好吧,根据答案,它看起来像: 安全属性(可以传递null) 是否最初拥有(可以传递false) 它的名字 HTHVB代码如下所示: hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&) 第一个参数是指向安全属性结构的指针。如果你

我已经导入了
kernel32
库。因此,我有可用的
createMutex
函数,但我不太确定各种参数和返回值

这是经典的Visual Basic,不是Visual Basic.NET,但我可能可以以答案的形式使用这两种语言。

好吧,根据答案,它看起来像:

  • 安全属性(可以传递null)
  • 是否最初拥有(可以传递false)
  • 它的名字

  • HTH

    VB代码如下所示:

    hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)
    
    第一个参数是指向
    安全属性
    结构的指针。如果你不知道它是什么,你就不需要它。传递空值(0)

    第二个参数是
    TRUE
    (非零,或1),如果调用线程应该拥有互斥锁<代码>错误否则

    第三个参数是互斥体名称,可以为NULL(0),如图所示。如果需要命名的互斥体,请传入名称(任何唯一的名称)。不确定
    VB
    包装器是否将前缀为
    VB
    的字符串类型(
    BSTR
    )的长度封送到以null结尾的Ascii/Unicode字符串。如果不是,则需要执行此操作,并且有许多示例


    祝你好运

    以下是的VB6声明-我刚刚从API查看器复制了它们,您应该将其作为VB6安装的一部分。VB6使用当前代码页将字符串封送到以null结尾的ANSI

    Public Type SECURITY_ATTRIBUTES
       nLength As Long
       lpSecurityDescriptor As Long
       bInheritHandle As Long 
    End Type
    
    Public Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" _
       (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, _
        ByVal lpName As String) As Long
    
    请记住,如果您从VB6 IDE创建互斥体,则互斥体属于IDE,并且在停止运行程序时不会被销毁—只有在关闭IDE时才会被销毁