Wie ein Mutex in Visual Basic verwenden,

stimmen
21

Ich habe die importierte kernel32Bibliothek. Also, ich habe die createMutexFunktion zur Verfügung , aber ich bin nicht ganz sicher , der verschiedenen Parameter und Rückgabewerte.

Das ist ein klassisches Visual Basic, Visual Basic.NET nicht, aber ich kann wahrscheinlich in Form einer Antwort mit jeder Sprache arbeiten.

Veröffentlicht am 04/08/2008 um 02:22
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
9

Hier sind die VB6 Erklärungen für CreateMutex - ich sie aus dem API - Viewer nur kopiert, die Sie als Teil Ihrer VB6 Installation haben sollten. VB6 marshalls Strings nullterminierten ANSI die aktuelle Codepage verwenden.

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

Denken Sie daran, dass, wenn Sie einen Mutex aus den VB6 IDE erstellen, die Mutex des IDE gehört und nicht zerstört werden, wenn Sie aufhören laufen Ihr Programm - nur, wenn Sie die IDE schließen.

Beantwortet am 17/09/2008 um 13:01
quelle vom benutzer

stimmen
7

Der VB-Code sieht ungefähr so ​​aus:

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

Der erste Parameter ist ein Zeiger auf eine SECURITY_ATTRIBUTESStruktur. Wenn Sie nicht wissen , was es ist, brauchen Sie nicht. Übergeben Sie NULL (0).

Der zweite Parameter ist TRUE(nicht Null oder 1) , wenn der aufrufende Thread das Eigentum an der Mutex nehmen sollte. FALSEAndernfalls.

Der dritte Parameter ist der Mutex Name und kann NULL (0) sein, wie dargestellt. Wenn Sie eine benannte Mutex müssen, übergeben Sie den Namen ein (etwas einzigartig) in. Nicht sicher , ob die VBWrapper - Marschälle die Länge-Präfix - VBString - Typ ( BSTR) über einen nullterminierten Ascii / Unicode - String , wenn nicht, müssen Sie das tun, und zahlreiche Beispiele sind da draußen.

Viel Glück!

Beantwortet am 04/08/2008 um 05:58
quelle vom benutzer

stimmen
2

Nun, auf der Grundlage der Dokumentation es wie folgt aussieht:

  1. Sicherheitsattribute (kann null übergeben)
  2. Ob es ursprünglich im Besitz ist (kann falsch passieren)
  3. Der Name es

HTH

Beantwortet am 04/08/2008 um 05:48
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more