DllImportAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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 |
SetLastError |
Indica se o receptor define um erro ( |
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) |