سؤال

لدي المستوردة 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.

حسنا, بناء على الوثائق يبدو مثل:

  1. سمات الأمان (يمكن تمرير null)
  2. سواء كان ذلك في البداية المملوكة (يمكن أن تمر كاذبة)
  3. اسم

HTH

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top