DllImportAttribute Classe

Definição

Indica que o método atribuído é exposto por uma biblioteca de ligação dinâmica (DLL) não gerida como 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 seguinte exemplo de código mostra como usar o DllImportAttribute atributo para importar a função Win32 MessageBox . O exemplo de código chama então 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

Observações

Pode aplicar esta característica a métodos.

O DllImportAttribute atributo fornece a informação necessária para chamar uma função exportada de uma DLL não gerida. Como requisito mínimo, deve fornecer o nome do DLL que contém o ponto de entrada.

Aplica-se este atributo diretamente às definições do método C#; No entanto, o compilador Visual Basic emite este atributo quando se usa a instrução /> BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError ou ThrowOnUnmappableChar campos, aplica-se este atributo diretamente às definições de Visual Basic método. Considera usar o LibraryImportAttribute atributo em vez disso.

Note

O JScript não suporta este atributo. Pode usar classes wrapper em C# ou Visual Basic para aceder a métodos API não geridos de programas JScript.

Para informações adicionais sobre a utilização do serviço de invocação da plataforma para aceder a funções em DLLs não geridas, veja Consuming Unmanaged DLL Functions.

Note

O DllImportAttribute não suporta o agrupamento de tipos genéricos.

Construtores

Name Description
DllImportAttribute(String)

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

Campos

Name Description
BestFitMapping

Permite ou desativa o comportamento de mapeamento de melhor ajuste ao converter caracteres Unicode para caracteres ANSI.

CallingConvention

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

CharSet

Indica como fazer marshal dos parâmetros da string para o método e controla o nome mangling.

EntryPoint

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

ExactSpelling

Controla se o CharSet campo faz com que o runtime da linguagem comum procure numa DLL não gerida nomes de pontos de entrada diferentes do especificado.

PreserveSig

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

SetLastError

Indica se o chamado define um erro (SetLastError em Windows ou errno noutras plataformas) antes de regressar do método atribuído.

ThrowOnUnmappableChar

Permite ou desativa o lançamento de uma exceção num carácter Unicode impossível de mapear que é convertido para um carácter ANSI "?".

Propriedades

Name Description
TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)
Value

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

Métodos

Name Description
Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

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

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

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

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

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

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

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

(Herdado de Attribute)

Aplica-se a

Ver também