DllImportAttribute Sınıf

Tanım

Öznitelikli yöntemin yönetilmeyen bir dinamik bağlantı kitaplığı (DLL) tarafından statik giriş noktası olarak kullanıma sunulduğuna işaret eder.

public ref class DllImportAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class DllImportAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DllImportAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type DllImportAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DllImportAttribute = class
    inherit Attribute
Public NotInheritable Class DllImportAttribute
Inherits Attribute
Devralma
DllImportAttribute
Öznitelikler

Örnekler

Aşağıdaki kod örneği, Win32 MessageBox işlevini içeri aktarmak için özniteliğinin nasıl kullanılacağını DllImportAttribute gösterir. Kod örneği daha sonra içeri aktarılan yöntemi çağırır.

using System;
using System.Runtime.InteropServices;

class Example
{
    // Use DllImport to import the Win32 MessageBox function.
    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
    
    static void Main()
    {
        // Call the MessageBox function using platform invoke.
        MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);
    }
}
Imports System.Runtime.InteropServices

Module Example

    ' Use DllImport to import the Win32 MessageBox function.
    <DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
    Function MessageBox(ByVal hwnd As IntPtr, ByVal t As String, ByVal caption As String, ByVal t2 As UInt32) As Integer
    End Function


    Sub Main()
        ' Call the MessageBox function using platform invoke.
        MessageBox(New IntPtr(0), "Hello World!", "Hello Dialog", 0)
    End Sub

End Module

Açıklamalar

Bu özniteliği yöntemlere uygulayabilirsiniz.

özniteliği, DllImportAttribute yönetilmeyen DLL'den dışarı aktarılan bir işlevi çağırmak için gereken bilgileri sağlar. En düşük gereksinim olarak, giriş noktasını içeren DLL'nin adını sağlamanız gerekir.

Bu özniteliği doğrudan C# yöntemi tanımlarına uygularsınız; ancak, Visual Basic derleyicisi Declare deyimini kullandığınızda bu özniteliği yayar. BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError veya ThrowOnUnmappableChar alanlarını içeren karmaşık yöntem tanımları için, bu özniteliği doğrudan Visual Basic yöntem tanımlarına uygularsınız. Bunun yerine özniteliğini LibraryImportAttribute kullanmayı göz önünde bulundurun.

Note

JScript bu özniteliği desteklemiyor. JScript programlarından yönetilmeyen API yöntemlerine erişmek için C# veya Visual Basic sarmalayıcı sınıflarını kullanabilirsiniz.

Yönetilmeyen DLL'lerdeki işlevlere erişmek için platform çağırma hizmetini kullanma hakkında ek bilgi için bkz . Yönetilmeyen DLL İşlevlerini Kullanma.

Note

DllImportAttribute, genel türlerin sıralanmasını desteklemez.

Oluşturucular

Name Description
DllImportAttribute(String)

İçeri aktaracak yöntemi içeren DLL'nin adıyla sınıfının yeni bir örneğini DllImportAttribute başlatır.

Alanlar

Name Description
BestFitMapping

Unicode karakterleri ANSI karakterlerine dönüştürürken en uygun eşleme davranışını etkinleştirir veya devre dışı bırakır.

CallingConvention

Bir giriş noktasının çağırma kuralını gösterir.

CharSet

Dize parametrelerinin yönteme nasıl sıralanıp ad mangling'ini denetlediğini gösterir.

EntryPoint

Çağrılacak DLL giriş noktasının adını veya sırasını gösterir.

ExactSpelling

Alanın ortak dil çalışma zamanının yönetilmeyen DLL'de belirtilenden farklı giriş noktası adları aramasına neden olup olmadığını CharSet denetler.

PreserveSig

Dönüş değerlerine sahip HRESULT yönetilmeyen yöntemlerin doğrudan çevrilip çevrilmediğini HRESULT veya dönüş değerlerinin otomatik olarak özel durumlara dönüştürüldüğünü gösterir.

SetLastError

Çağıranın öznitelikli yöntemden dönmeden önce bir hata ayarlayıp ayarlamadığını gösterir (Windows'da SetLastError veya diğer platformlarda errno).

ThrowOnUnmappableChar

ANSI "?" karakterine dönüştürülen, uygulamaz bir Unicode karakterinde özel durum oluşturma işlemini etkinleştirir veya devre dışı bırakır.

Özellikler

Name Description
TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)
Value

Giriş noktasını içeren DLL dosyasının adını alır.

Yöntemler

Name Description
Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğin karma kodunu döndürür.

(Devralındığı yer: Attribute)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.