سؤال
لدي المستوردة kernel32
المكتبة.لذا لدي createMutex
وظيفة متوفرة ولكن أنا لست متأكدا تماما من المعلمات المختلفة والعودة القيم.
هذا هو كلاسيكي Visual Basic لا البصرية Basic.NET ولكن أنا ربما يمكن أن يعمل مع أي لغة في شكل إجابة.
المحلول
VB كود تبدو شيئا مثل هذا:
hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)
المعلمة الأولى هو مؤشر إلى SECURITY_ATTRIBUTES
هيكل.إذا كنت لا تعرف ما هو عليه, أنت لا تحتاج إلى ذلك.تمرير NULL (0).
المعلمة الثانية هي TRUE
(غير صفر أو 1) إذا كان موضوع الدعوة يجب أن تأخذ ملكية مزامنة. FALSE
خلاف ذلك.
المعلمة الثالث هو مزامنة اسم و قد تكون فارغة (0) ، كما هو مبين.إذا كنت في حاجة الى اسمه مزامنة تمرير اسم (أي) في.غير متأكد ما إذا كان VB
المجمع حراس طول مسبوقة VB
نوع السلسلة (BSTR
) أكثر خالية منتهية Ascii/سلسلة Unicode إن لم يكن, سوف تحتاج إلى القيام بذلك و أمثلة عديدة هناك.
حظا سعيدا!
نصائح أخرى
هنا VB6 التعريفات CreateMutex - أنا فقط نسخها من API viewer الذي يجب أن يكون جزءا من VB6 التثبيت.VB6 الجابر السلاسل المنتهية بصفر ANSI باستخدام صفحة الترميز اللغوي الحالية.
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 ، مزامنة ينتمي إلى IDE و لن يتم تدميرها عند إيقاف تشغيل البرنامج فقط عند إغلاق IDE.
حسنا, بناء على الوثائق يبدو مثل:
- سمات الأمان (يمكن تمرير null)
- سواء كان ذلك في البداية المملوكة (يمكن أن تمر كاذبة)
- اسم
HTH