DllImportAttribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Ö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
- Ö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# ve C++ yöntem tanımlarına uygularsınız; ancak, deyimini kullandığınızda Visual Basic derleyicisi bu özniteliği yayar Declare
. , , CallingConvention, ExactSpelling, PreserveSigSetLastErrorveya 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 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.
Not
, DllImportAttribute genel türlerin sıralanmasını desteklemez.
Oluşturucular
DllImportAttribute(String) |
İçeri aktarma yöntemini 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 |
Yönteme dize parametrelerinin 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 başka giriş noktası adları aramasına neden olup olmadığını CharSet denetler. |
PreserveSig |
Dönüş değerlerine sahip |
SetLastError |
Çağıranın öznitelikli yöntemden dönmeden önce bir hata ayarlayıp ayarlamadığını ( |
ThrowOnUnmappableChar |
ANSI "?" karakterine dönüştürülen, uygulamaz unicode karakterde özel durum oluşturma işlemini 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) |