vb6 visual विजुअल बेसिक में म्यूटक्स का उपयोग कैसे करें




विजुअल बेसिक इन हिंदी नोट्स (3)

मैंने kernel32 लाइब्रेरी को आयात किया है, इसलिए मेरे पास createMutex फ़ंक्शन उपलब्ध है, लेकिन मुझे विभिन्न पैरामीटर और रिटर्न वैल्यू के बारे में निश्चित नहीं है।

यह क्लासिक विज़ुअल बेसिक, Visual Basic .NET नहीं है, लेकिन मैं शायद एक उत्तर के रूप में किसी भी भाषा के साथ काम कर सकता हूं।


खैर, प्रलेखन के आधार पर यह दिखता है:

  1. सुरक्षा गुण (नल पारित कर सकते हैं)
  2. चाहे वह शुरू में स्वामित्व है (गलत हो सकता है)
  3. इसका नाम

HTH


CreateMutex के लिए VB6 घोषणाएं यहाँ हैं - मैंने उन्हें एपीआई दर्शक से कॉपी किया है, जो आपको आपके वीबी 6 स्थापना के हिस्से के रूप में होना चाहिए। वर्तमान कोड पृष्ठ का उपयोग करके रिक्त समाप्त एएनएसआई के लिए वीबी 6 मार्शल स्ट्रिंग्स।

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

ध्यान रखें कि यदि आप VB6 IDE से एक म्यूट एक्स बनाते हैं, तो म्यूट एक्स आईडीई के अंतर्गत आता है और जब आप अपने प्रोग्राम को रोकते हैं तो नष्ट नहीं किया जाएगा - केवल जब आप आईडीई बंद करते हैं


VB कोड कुछ ऐसा दिखता है:

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

पहला पैरामीटर एक SECURITY_ATTRIBUTES संरचना के लिए एक सूचक है। अगर आपको नहीं पता कि यह क्या है, तो आपको इसकी आवश्यकता नहीं है। पास नल (0)

दूसरा पैरामीटर TRUE (गैर-शून्य, या 1) है अगर कॉलिंग थ्रेड को म्यूट एक्स की स्वामित्व लेनी चाहिए। अन्यथा FALSE

तीसरा पैरामीटर म्यूट एक्स नाम है और NULL (0) हो सकता है, जैसा कि दिखाया गया है। अगर आपको नामित म्यूट एक्स की आवश्यकता है, तो नाम (कुछ भी अनूठे) पास करें। सुनिश्चित नहीं है कि VB आवरण एक लम्बाई-प्रीफ़ेक्स्ड VB स्ट्रिंग टाइप ( BSTR ) को एक अशक्त-समाप्त एएससीआई / यूनिकोड स्ट्रिंग के लिए मार्शल नहीं करता है, यदि आपको नहीं चाहिए ऐसा करने के लिए और कई उदाहरण वहाँ बाहर हैं

सौभाग्य!