Comparteix a través de


DllImportAttribute Clase

Definición

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
DllImportAttribute
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 HRESULT valores devueltos se traducen directamente o si HRESULT los valores devueltos se convierten automáticamente en excepciones.

SetLastError

Indica si el destinatario establece un error (SetLastError en Windows o errno en otras plataformas) antes de devolver desde el método con atributos.

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)

Se aplica a

Consulte también