Frage

Ich habe importiert kernel32 Bibliothek.Also, ich habe den createMutex - Funktion verfügbar ist, aber ich bin nicht ganz sicher, von den verschiedenen Parametern und Rückgabewerten.

Das ist eine klassische Visual Basic, nicht visuell Basic.NET aber ich kann wohl die Arbeit, die entweder mit Sprache in form einer Antwort.

War es hilfreich?

Lösung

Der VB-code sieht ungefähr so aus:

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

Der erste parameter ist ein Zeiger auf ein SECURITY_ATTRIBUTES Struktur.Wenn Sie nicht wissen, was es ist, Sie brauchen es nicht.Übergeben Sie den Wert NULL (0).

Der zweite parameter ist TRUE (nicht-null, oder 1), wenn der aufrufende thread den Besitz des mutex. FALSE sonst.

Der Dritte parameter ist die mutex-Namen und kann NULL (0), wie gezeigt.Wenn Sie einen benannten mutex, übergeben Sie den Namen (alles Unikate) in.Nicht sicher, ob die VB wrapper marshals das längenpräfix VB Typ string (BSTR) über eine mit null beendete Ascii - /Unicode-string, wenn nicht, Sie müssen zu tun, und zahlreiche Beispiele dafür gibt es genug.

Viel Glück!

Andere Tipps

Hier ist die VB6 Erklärungen für CreateMutex - Ich habe gerade kopiert Sie aus dem API-viewer, die Sie sollten, haben als Teil von Ihre VB6 installation.VB6 marshalls strings null-terminiert ANSI mit der aktuellen Codepage.

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

Beachten Sie, dass, wenn Sie einen mutex aus der VB6-IDE, wird der mutex gehört zu der IDE und wird nicht zerstört werden, wenn Sie aufhören, die Ihr Programm - nur wenn Sie schließen Sie die IDE.

Nun, auf der Grundlage der Dokumentation es sieht aus wie:

  1. Sicherheits-Parametern (can pass null)
  2. Ob es zunächst im Besitz (kann passieren false)
  3. Die name it

HTH

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top