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 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 |
| SetLastError |
Indica se o receptor define um erro ( |
| 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) |