DllImportAttribute Classe

Definição

Indica que o método atribuído é exposto por uma DLL (biblioteca de vínculo dinâmico) não gerenciada como um ponto de entrada estático.

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
Herança
DllImportAttribute
Atributos

Exemplos

O exemplo de código a seguir mostra como usar o DllImportAttribute atributo para importar a função Win32 MessageBox . Em seguida, o exemplo de código chama o método importado.

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

Comentários

Você pode aplicar esse atributo a métodos.

O DllImportAttribute atributo fornece as informações necessárias para chamar uma função exportada de uma DLL não gerenciada. Como um requisito mínimo, você deve fornecer o nome da DLL que contém o ponto de entrada.

Você aplica esse atributo diretamente às definições do método C#; no entanto, o compilador Visual Basic emite esse atributo quando você usa a instrução Declare. Para definições de método complexas que incluem campos BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError ou ThrowOnUnmappableChar, aplique esse atributo diretamente às definições do método Visual Basic. Em vez disso, considere usar o LibraryImportAttribute atributo.

Note

O JScript não dá suporte a esse atributo. Você pode usar classes de wrapper C# ou Visual Basic para acessar métodos de API não gerenciados de programas JScript.

Para obter informações adicionais sobre como usar o serviço de invocação de plataforma para acessar funções em DLLs não gerenciadas, consulte Consuming Unmanaged DLL Functions.

Note

O DllImportAttribute não dá suporte ao marshaling de tipos genéricos.

Construtores

Nome Description
DllImportAttribute(String)

Inicializa uma nova instância da DllImportAttribute classe com o nome da DLL que contém o método a ser importado.

Campos

Nome Description
BestFitMapping

Habilita ou desabilita o comportamento de mapeamento de melhor ajuste ao converter caracteres Unicode em caracteres ANSI.

CallingConvention

Indica a convenção de chamada de um ponto de entrada.

CharSet

Indica como fazer marshaling de parâmetros de cadeia de caracteres para o método e controla o mangling de nomes.

EntryPoint

Indica o nome ou ordinal do ponto de entrada DLL a ser chamado.

ExactSpelling

Controla se o CharSet campo faz com que o common language runtime pesquise uma DLL não gerenciada em busca de nomes de ponto de entrada diferentes do especificado.

PreserveSig

Indica se os métodos não gerenciados que têm HRESULT valores retornados são convertidos diretamente ou se HRESULT os valores retornados são convertidos automaticamente em exceções.

SetLastError

Indica se o receptor define um erro (SetLastError em Windows ou errno em outras plataformas) antes de retornar do método atribuído.

ThrowOnUnmappableChar

Habilita ou desabilita o lançamento de uma exceção em um caractere Unicode inaplicaível convertido em um caractere ANSI "?".

Propriedades

Nome Description
TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute.

(Herdado de Attribute)
Value

Obtém o nome do arquivo DLL que contém o ponto de entrada.

Métodos

Nome Description
Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Devolve o código hash para esta instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também