Question

J'ai importé le kernel32 bibliothèque.Donc, j'ai le createMutex fonction disponible mais je ne suis pas tout à fait sûr des différents paramètres et valeurs de retour.

Il s'agit de Visual Basic classique, pas de Visual Basic.NET, mais je peux probablement travailler avec l'un ou l'autre langage sous la forme d'une réponse.

Était-ce utile?

La solution

Le code VB ressemble à ceci :

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

Le premier paramètre est un pointeur vers un SECURITY_ATTRIBUTES structure.Si vous ne savez pas ce que c'est, vous n'en avez pas besoin.Passez NULL (0).

Le deuxième paramètre est TRUE (différent de zéro ou 1) si le thread appelant doit prendre possession du mutex. FALSE sinon.

Le troisième paramètre est le nom du mutex et peut être NULL (0), comme indiqué.Si vous avez besoin d'un mutex nommé, transmettez le nom (tout ce qui est unique).Je ne sais pas si le VB le wrapper rassemble le préfixe de longueur VB type de chaîne (BSTR) vers une chaîne Ascii/Unicode terminée par un caractère nul, sinon vous devrez le faire et de nombreux exemples existent.

Bonne chance!

Autres conseils

Voici les déclarations VB6 pour CréerMutex - Je viens de les copier depuis la visionneuse API, que vous devriez avoir dans le cadre de votre installation VB6.VB6 rassemble les chaînes en ANSI terminé par un caractère nul en utilisant la page de codes actuelle.

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

Gardez à l'esprit que si vous créez un mutex à partir de l'IDE VB6, le mutex appartient à l'IDE et ne sera pas détruit lorsque vous arrêterez d'exécuter votre programme - uniquement lorsque vous fermerez l'EDI.

Eh bien, sur la base du Documentation On dirait:

  1. Attributs de sécurité (peuvent transmettre null)
  2. Qu'il soit initialement détenu (peut passer faux)
  3. Le nom de celui-ci

HTH

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top