كيفية القيام بما يلي: استدعاء دالة Windows التي تأخذ أنواع دون اشارة

إذا كنت تستهلك فئة, وحدة نمطية, أو بنية التي لديها أعضاء من أنواع عدد صحيح بلا إشارة, يمكنك الوصول لهؤلاء الأعضاء مع Visual Basic.

لاتدعاء دالة Windows التي تأخذ نوع بلا اشارة

  1. استخدم عبارة التعريف لمعرفة Visual Basic أي مكتبة التي تحتوي على الدالة, ما الاسم الخاص بها في تلك المكتبة, وما هو تسلسل الاستدعاء الخاص به, وكيفية تحويل السلاسل عند استدعائه.

  2. في Declare الكشف استخدم UInteger, ULong, UShort، أو Byte بالشكل المناسب لكل معلمة مع نوع بلا اشارة.

  3. استشر الوثائق لدالة Windows التي تقوم باستدعائها للعثور على أسماء وقيم الثوابت التي يستخدمها. تم تعريف العديد من هذه في ملف WinUser.h.

  4. قم بتعريف الثوابت الضرورية في التعليمات البرمجية. العديد من ثوابت Windows هم قيم 32-بت بلا اشارة, و يجب أن تقوم بتعريف هذه AsUInteger.

  5. قم بـاستدعاء الدالة بالطريقة العادية. يستدعي المثال التالي دالة Windows MessageBox، التي تأخذ وسيطة عدد صحيح بدون إشارة.

    Public Class windowsMessage
        Private Declare Auto Function mb Lib "user32.dll" Alias "MessageBox" (
            ByVal hWnd As Integer, 
            ByVal lpText As String, 
            ByVal lpCaption As String, 
            ByVal uType As UInteger) As Integer
        Private Const MB_OK As UInteger = 0
        Private Const MB_ICONEXCLAMATION As UInteger = &H30
        Private Const IDOK As UInteger = 1
        Private Const IDCLOSE As UInteger = 8
        Private Const c As UInteger = MB_OK Or MB_ICONEXCLAMATION
        Public Function messageThroughWindows() As String
            Dim r As Integer = mb(0, "Click OK if you see this!", 
                "Windows API call", c)
            Dim s As String = "Windows API MessageBox returned " &
                 CStr(r)& vbCrLf & "(IDOK = " & CStr(IDOK) &
                 ", IDCLOSE = " & CStr(IDCLOSE) & ")"
            Return s
        End Function
    End Class
    

    يمكنك اختبار دالة messageThroughWindows مع التعليمات البرمجية التالية.

    Public Sub consumeWindowsMessage()
        Dim w As New windowsMessage
        w.messageThroughWindows()
    End Sub
    
    ملاحظة تنبيهتنبيه

    UInteger, ULong, UShort، و SByte أنواع البيانات ليست جزءاً من مواصفة اللغة العامة (CLS) ، بحيث لا تستهلك التعليمات البرمجية ميسر CLS مكون يستخدمها.

    ملاحظة الأمانملاحظة الأمان

    القيام باستدعاء تعليمات برمجية غير مُدارة, مثل واجهة برمجة تطبيقات (API) Windows, يكشف عن التعليمات البرمجية الخاصة بك إلى مخاطر أمنية محتملة.

    ملاحظة الأمانملاحظة الأمان

    استدعاء واجهة برمجة تطبيقات Windows يتطلب اذن تعليمات برمجية غير مُدارة, التي قد يؤثر على التنفيذ الخاص به في مواقف الثقة الجزئية. للمزيد من المعلومات، راجع SecurityPermission وأذونات الوصول إلى التعليمات البرمجية.

راجع أيضًا:

المهام

كيفية القيام بما يلي: تحسين التخزين للأعداد الصحيحة الموجبة مع الأنواع التي لا تملك اشارة

الإرشادات التفصيلية: استدعاء Windows API

المرجع

خلاصة نوع بيانات (Visual Basic)

نوع بيانات الأعداد الصحيحة (Visual Basic)

نوع بيانات UInteger

عبارة التعريف