مشاركة عبر


تحديد يؤشر إدخال

يؤشر الإدخال يعرف الموقع دالة في DLL. ضمن مشروع مدارة، الأصلي اسم أو يؤشر الإدخال ترتيبي دالة الهدف بتعريف هذه الدالة عبر حدود interoperation. علاوة على ذلك، يمكنك تعيين نقطة الإدخال إلى اسم آخر، فاعلية إعادة تسمية دالة.

يتبع هو lهوt أسباب المحتملة لإعادة تسمية دالة DLL:

  • إلى تجنب استخدام أسماء الدالات API حساسة لحالة الأحرف

  • إلى التوافق مع معايير التسمية موجود

  • إلى تناسب الدالات التي تأخذ أنواع بيانات مختلفة (بواسطة المعرف إصدارات متعددة من نفس دالة DLL)

  • إلى تبسيط استخدام واجهات برمجة التطبيقات التي تحتوي على الإصدارات ‏‫ANSI أو Unicode

يوضح هذا pic إلى كيف إلى إعادة تسمية دالة DLL في تعليمات برمجية المدارة.

إعادة تسمية دالة في Visual أساسى

يستخدم Visual أساسى دالة كلمة أساسية في Declare عبارة لتعيين DllImportAttribute.EntryPointالحقل. يلي مثال يظهر إعلان أساسية.

Imports System.Runtime.InteropServices

Public Class Win32
    Declare Auto Function MsgBox Lib "user32.dll" _
       Alias MessageBox (ByVal hWnd As Integer, ByVal txt As String,_
       ByVal caption As String, ByVal Typ As Integer) As Integer
End Class

يمكنك استبدال MessageBox يؤشر الإدخال بمع MsgBox بما في ذلك الاسم المستعار كلمة أساسية في التعريف الخاص بك، كما هو موضح في المثال التالي. في كل من الأمثلة الكلمة الأساسية تلقائي يلغي الحاجة إلى تحديد الإصدار التعيين الأحرف نقطة الإدخال. For المزيد معلومات حول selecting a حرف التعيين, see Specifying a حرف التعيين.

Imports System.Runtime.InteropServices

Public Class Win32
    Declare Auto Function MsgBox Lib "user32.dll" _
       Alias MessageBox (ByVal hWnd As Integer, ByVal txt As String,_
       ByVal caption As String, ByVal Typ As Integer) As Integer
End Class

Renaming a دالة في C# و C++‎

You can استخدم the DllImportAttribute.EntryPoint حقل إلى specify a DLL دالة حسب الاسم أو أعداد ترتيبية. If the اسم دالة في your أسلوب تعريف هو the same كـ the إدخال يؤشر في the DLL, you do not have إلى بوضوح identify the دالة مع the EntryPoint حقل. Otherwise, استخدم واحد of the following سمة forms إلى indicate a اسم أو أعداد ترتيبية:

[DllImport("dllname", EntryPoint="Functionname")]
[DllImport("dllname", EntryPoint="#123")]

Notice that you must بادئة an أعداد ترتيبية مع the pound sign (#).

The following مثال demonstrates how إلى استبدال MessageBoxA مع MsgBox في your تعليمات برمجية بواسطة using the EntryPoint حقل.

using System.Runtime.InteropServices;

public class Win32 {
    [DllImport("user32.dll", EntryPoint="MessageBoxA")]
    public static extern int MsgBox(int hWnd, String text, String caption,
                                    uint type);
}
using namespace System::Runtime::InteropServices;

typedef void* HWND;
[DllImport("user32", EntryPoint="MessageBoxA")]
extern "C" int MsgBox(HWND hWnd,
                      String*  pText,
                      String*  pCaption,
                      unsigned int uType);

راجع أيضًا:

المرجع

DllImportAttribute

المبادئ

قم بإنشاء النماذج الأولية في تعليمات برمجية المدارة

استدعاء النظام الأساسي أمثلة

موارد أخرى

استدعاء التنظيم والإرسال بيانات بالنظام الأساسي