Bagikan melalui


DllImportAttribute Kelas

Definisi

Menunjukkan bahwa metode yang diatribusikan diekspos oleh pustaka tautan dinamis (DLL) yang tidak dikelola sebagai titik masuk statis.

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
Warisan
DllImportAttribute
Atribut

Contoh

Contoh kode berikut menunjukkan cara menggunakan DllImportAttribute atribut untuk mengimpor fungsi Win32 MessageBox . Contoh kode kemudian memanggil metode yang diimpor.

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

Keterangan

Anda dapat menerapkan atribut ini ke metode.

Atribut DllImportAttribute menyediakan informasi yang diperlukan untuk memanggil fungsi yang diekspor dari DLL yang tidak dikelola. Sebagai persyaratan minimum, Anda harus memberikan nama DLL yang berisi titik masuk.

Anda menerapkan atribut ini langsung ke definisi metode C# dan C++; namun, pengkompilasi Visual Basic memancarkan atribut ini saat Anda menggunakan Declare pernyataan . Untuk definisi metode kompleks yang mencakup BestFitMappingbidang , , CallingConvention, PreserveSigExactSpelling, SetLastError, atau ThrowOnUnmappableChar , Anda menerapkan atribut ini langsung ke definisi metode Visual Basic.

Catatan JScript tidak mendukung atribut ini. Anda dapat menggunakan kelas pembungkus C# atau Visual Basic untuk mengakses metode API yang tidak dikelola dari program JScript.

Untuk informasi tambahan tentang menggunakan layanan pemanggilan platform untuk mengakses fungsi di DLL yang tidak dikelola, lihat Mengonsumsi Fungsi DLL yang Tidak Dikelola.

Catatan

DllImportAttribute tidak mendukung marshaling jenis generik.

Konstruktor

DllImportAttribute(String)

Menginisialisasi instans DllImportAttribute baru kelas dengan nama DLL yang berisi metode untuk diimpor.

Bidang

BestFitMapping

Mengaktifkan atau menonaktifkan perilaku pemetaan yang paling cocok saat mengonversi karakter Unicode ke karakter ANSI.

CallingConvention

Menunjukkan konvensi panggilan titik masuk.

CharSet

Menunjukkan cara marshal string parameter ke metode dan mengontrol nama mangling.

EntryPoint

Menunjukkan nama atau ordinal titik entri DLL yang akan dipanggil.

ExactSpelling

Mengontrol apakah CharSet bidang menyebabkan runtime bahasa umum mencari DLL yang tidak dikelola untuk nama titik entri selain yang ditentukan.

PreserveSig

Menunjukkan apakah metode tidak terkelola yang memiliki HRESULT nilai pengembalian secara langsung diterjemahkan atau apakah HRESULT nilai pengembalian secara otomatis dikonversi ke pengecualian.

SetLastError

Menunjukkan apakah penerima panggilan menetapkan kesalahan (SetLastError di Windows atau errno di platform lain) sebelum kembali dari metode yang diatribusikan.

ThrowOnUnmappableChar

Mengaktifkan atau menonaktifkan pelemparan pengecualian pada karakter Unicode yang tidak dapat dipetakan yang dikonversi ke karakter "?" ANSI.

Properti

TypeId

Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute.

(Diperoleh dari Attribute)
Value

Mendapatkan nama file DLL yang berisi titik masuk.

Metode

Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)

Berlaku untuk

Lihat juga