DllImportAttribute Classe

Definição

{1>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.<1}Indicates that the attributed method is exposed by an unmanaged dynamic-link library (DLL) as a static entry point.

public ref class DllImportAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DllImportAttribute : Attribute
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 atributo DllImportAttribute para importar a função de MessageBox do Win32.The following code example shows how to use the DllImportAttribute attribute to import the Win32 MessageBox function. Em seguida, o exemplo de código chama o método importado.The code example then calls the imported method.

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.You can apply this attribute to methods.

O atributo DllImportAttribute fornece as informações necessárias para chamar uma função exportada de uma DLL não gerenciada.The DllImportAttribute attribute provides the information needed to call a function exported from an unmanaged DLL. Como requisito mínimo, você deve fornecer o nome da DLL que contém o ponto de entrada.As a minimum requirement, you must supply the name of the DLL containing the entry point.

Você aplica esse atributo diretamente às C# definições C++ de método e; no entanto, o compilador de Visual Basic emite esse atributo quando você usa a instrução Declare.You apply this attribute directly to C# and C++ method definitions; however, the Visual Basic compiler emits this attribute when you use the Declare statement. Para definições de métodos complexos que incluem BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastErrorou ThrowOnUnmappableChar campos, você aplica esse atributo diretamente às definições do método de Visual Basic.For complex method definitions that include BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError, or ThrowOnUnmappableChar fields, you apply this attribute directly to Visual Basic method definitions.

Observação O JScript não oferece suporte a este atributo.Note JScript does not support this attribute. Você pode usar C# ou Visual Basic classes de wrapper para acessar métodos de API não gerenciados de programas JScript.You can use C# or Visual Basic wrapper classes to access unmanaged API methods from JScript programs.

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.For additional information about using the platform invoke service to access functions in unmanaged DLLs, see Consuming Unmanaged DLL Functions.

Observação

O DllImportAttribute não oferece suporte ao marshaling de tipos genéricos.The DllImportAttribute does not support marshaling of generic types.

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.Initializes a new instance of the DllImportAttribute class with the name of the DLL containing the method to import.

Campos

BestFitMapping

Habilita ou desabilita o comportamento de mapeamento mais adequado ao converter caracteres Unicode em caracteres ANSI.Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.

CallingConvention

Indica a convenção de chamada de um ponto de entrada.Indicates the calling convention of an entry point.

CharSet

Indica como realizar marshaling de parâmetros de cadeia de caracteres para o método e a desconfiguração de nome de controles.Indicates how to marshal string parameters to the method and controls name mangling.

EntryPoint

Indica o nome ou o ordinal do ponto de entrada DLL a ser chamado.Indicates the name or ordinal of the DLL entry point to be called.

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.Controls whether the CharSet field causes the common language runtime to search an unmanaged DLL for entry-point names other than the one specified.

PreserveSig

Indica se os métodos não gerenciados que têm valores retornados HRESULT ou retval são traduzidos diretamente ou se os valores retornados HRESULT e retval são convertidos automaticamente para exceções.Indicates whether unmanaged methods that have HRESULT or retval return values are directly translated or whether HRESULT or retval return values are automatically converted to exceptions.

SetLastError

Indica se o computador chamado chama a função de API do Windows SetLastError antes de retornar do método atribuído.Indicates whether the callee calls the SetLastError Windows API function before returning from the attributed method.

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.Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.

Propriedades

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Herdado de Attribute)
Value

Obtém o nome do arquivo DLL que contém o ponto de entrada.Gets the name of the DLL file that contains the entry point.

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.Returns the hash code for this instance.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(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.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(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.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(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.Maps a set of names to a corresponding set of dispatch identifiers.

(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.Retrieves the type information for an object, which can be used to get the type information for an 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).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Herdado de Attribute)

Aplica-se a

Veja também