Compartilhar via


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 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 de método C# e C++; no entanto, o compilador do Visual Basic emite esse atributo quando você usa a Declare instrução . Para definições de método complexas que incluem BestFitMappingcampos , CallingConvention, ExactSpelling, PreserveSig, SetLastErrorou ThrowOnUnmappableChar , você aplica esse atributo diretamente às definições de método do Visual Basic.

Nota O JScript não dá suporte a esse atributo. Você pode usar classes 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 Consumindo funções de DLL não gerenciadas.

Observação

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

Construtores

DllImportAttribute(String)

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

Campos

BestFitMapping

Habilita ou desabilita o comportamento de mapeamento mais adequado ao converter caracteres Unicode em caracteres ANSI.

CallingConvention

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

CharSet

Indica como realizar marshaling de parâmetros de cadeia de caracteres para o método e a desconfiguração de nome de controles.

EntryPoint

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

ExactSpelling

Controla se o campo CharSet faz com que a Common Language Runtime pesquise uma DLL não gerenciada quanto a nomes de ponto de entrada diferentes daquele especificado.

PreserveSig

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

SetLastError

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

ThrowOnUnmappableChar

Habilita ou desabilita a geração de uma exceção em um caractere Unicode não mapeável que é convertido em um caractere "?" ANSI.

Propriedades

TypeId

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

(Herdado de Attribute)
Value

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

Métodos

Equals(Object)

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

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a 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 Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

_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 para um objeto, que pode ser usado para obter as informações de tipo para 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