Jak používat mutex v jazyka

hlasů
21

Jsem importoval kernel32knihovnu. Tak jsem mít createMutexfunkci k dispozici, ale nejsem si zcela jist, různých parametrů a návratové hodnoty.

To je klasický Visual Basic, není Visual Basic.NET ale mohu pravděpodobně fungovat buď s jazykem ve formě odpovědi.

Položena 04/08/2008 v 02:22
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
9

Tady jsou VB6 deklarace CreateMutex - Jen jsem zkopírovali z prohlížeče API, které byste měli mít jako součást instalace VB6. VB6 Marshalls struny na nulou ukončený ANSI pomocí aktuální znakovou stránku.

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

Mějte na paměti, že pokud vytvořit mutex z VB6 IDE, mutex patří do IDE a nebude zničen, když přestaneme váš program - pouze při zavření IDE.

Odpovězeno 17/09/2008 v 13:01
zdroj uživatelem

hlasů
7

VB kód vypadá nějak takto:

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

První parametr je ukazatel na SECURITY_ATTRIBUTESstrukturu. Pokud si nevíte, co to znamená, že ji nepotřebují. Projít NULL (0).

Druhým parametrem je TRUE(non-nula, nebo 1), zda má volající vlákno převzít vlastnictví mutexu. FALSEv opačném případě.

Třetí parametr je název mutex a může být NULL (0), jak je znázorněno. Pokud potřebujete pojmenovanou mutex, předat název (vše jedinečné) v. Nejsem si jistý, zda VBobálky maršálů délku předponou VBtyp řetězce ( BSTR) v průběhu do ASCII / řetězec Unicode zakončený hodnotou null, pokud ne, budete muset udělat a četné příklady jsou venku.

Hodně štěstí!

Odpovězeno 04/08/2008 v 05:58
zdroj uživatelem

hlasů
2

No, na základě dokumentace, vypadá to, že:

  1. atributy zabezpečení (lze předat NULL)
  2. Ať už je to na počátku ve vlastnictví (může projít false)
  3. Jméno jeho

HTH

Odpovězeno 04/08/2008 v 05:48
zdroj uživatelem

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