DllImportAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Indica que una biblioteca de vínculos dinámicos (DLL) no administrada expone el método con atributos como un punto 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
- Herencia
- Atributos
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar el DllImportAttribute atributo para importar la función Win32 MessageBox
. A continuación, el ejemplo de código llama al 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
Comentarios
Puede aplicar este atributo a métodos.
El DllImportAttribute atributo proporciona la información necesaria para llamar a una función exportada desde un archivo DLL no administrado. Como requisito mínimo, debe proporcionar el nombre del archivo DLL que contiene el punto de entrada.
Este atributo se aplica directamente a las definiciones de método de C# y C++; Sin embargo, el compilador de Visual Basic emite este atributo cuando se usa la Declare
instrucción . En el caso de definiciones de método complejas que incluyan BestFitMappingcampos , PreserveSigSetLastErrorCallingConventionExactSpellingo ThrowOnUnmappableChar , aplique este atributo directamente a las definiciones de método de Visual Basic.
Nota JScript no admite este atributo. Puede usar clases contenedoras de C# o Visual Basic para acceder a métodos de API no administrados desde programas JScript.
Para obtener información adicional sobre el uso del servicio de invocación de plataforma para acceder a funciones en archivos DLL no administrados, consulte Consumo de funciones DLL no administradas.
Nota
DllImportAttribute no admite la serialización de tipos genéricos.
Constructores
DllImportAttribute(String) |
Inicializa una nueva instancia de la clase DllImportAttribute con el nombre del archivo DLL que contiene el método que se va a importar. |
Campos
BestFitMapping |
Habilita o deshabilita el comportamiento de asignación de ajuste perfecto al convertir caracteres Unicode en caracteres ANSI. |
CallingConvention |
Indica la convención de llamada de un punto de entrada. |
CharSet |
Indica la forma de calcular las referencias de los parámetros de cadena al método, y controla los daños en los nombres. |
EntryPoint |
Indica el nombre u ordinal del punto de entrada de la DLL al que se va a llamar. |
ExactSpelling |
Controla si el campo CharSet hace que Common Language Runtime busque en un archivo DLL no administrado nombres de puntos de entrada distintos del especificado. |
PreserveSig |
Indica si los métodos no administrados que tienen |
SetLastError |
Indica si el destinatario establece un error ( |
ThrowOnUnmappableChar |
Habilita o deshabilita el inicio de una excepción cuando un carácter Unicode que no se puede asignar se convierte en un carácter ANSI "?". |
Propiedades
TypeId |
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
Value |
Obtiene el nombre del archivo DLL que contiene el punto de entrada. |
Métodos
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. (Heredado de Attribute) |
GetHashCode() |
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IsDefaultAttribute() |
Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
Match(Object) |
Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Heredado de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Heredado de Attribute) |