我有进口的 kernel32 图书馆。因此,我有 createMutex 功能可用,但我不是很确定的各种参数和返回值。

这是经典的视觉基本的、不觉得Basic.NET 但我或许可以用语言形式的答复。

有帮助吗?

解决方案

VB代码看起来是这样的:

hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)

第一个参数是指一个 SECURITY_ATTRIBUTES 结构。如果你不知道它是什么,你不需要它。通过NULL(0).

第二是参数 TRUE (non-零,或1)如果调线应采取所有权的互斥。 FALSE 否则。

第三个参数是互斥的名称和可以NULL(0),如下所示。如果你需要一个名叫锁,通过名称的(任何独特的)。不知道是否 VB 包装警长-前缀 VB 串的类型(BSTR)在一个空终止Ascii/Unicode串如果不是,你会需要这样做和许多例子。

祝你好运!

其他提示

这里的维生素b6声明 CreateMutex -我只是复制的他们从API观察者,你应该为你的维生素b6安装。维生素b6马歇尔串空终止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

铭记,如果创建了一个互斥从维生素b6IDE,互斥属于IDE和不会破坏当你停止运行程序-只有当你靠近IDE。

嗯,根据 文档 它看起来像:

  1. 安全特性(可能通过null)
  2. 无论是最初拥有的(可以通过虚假)
  3. 它的名字

禾田

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top