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.

DllImportAttribute özniteliği, 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# ve C++ yöntem tanımlarına uygularsınız; ancak, deyimini kullandığınızda Visual Basic derleyicisi bu özniteliği yayar Declare . , , CallingConvention, SetLastErrorExactSpellingPreserveSig, veya ThrowOnUnmappableChar alanları içeren BestFitMappingkarmaşık yöntem tanımları için, bu özniteliği doğrudan Visual Basic yöntem tanımlarına uygularsınız.

Not JScript bu özniteliği desteklemez. 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.

Not

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

Oluşturucular

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

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öntemine nasıl sıralanıp ad düzenlemesini 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 CharSet yönetilmeyen DLL'de belirtilenden başka giriş noktası adları aramasına neden olup olmadığını 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ı (SetLastError Windows'ta veya errno diğer platformlarda) gösterir.

ThrowOnUnmappableChar

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

Özellikler

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

Equals(Object)

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

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

Bu örneğe ilişkin karma kodu döndürür.

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

Type Geçerli örneğini 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 Objectöğesinin sığ bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_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 sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.