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,但我可能可以以答案的形式使用这两种语言。好吧,根据答案,它看起来像:
HTHVB代码如下所示:
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时才会被销毁