DllImportAttribute Clase
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
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
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.
Dll |
Inicializa una nueva instancia de la clase DllImportAttribute con el nombre del archivo DLL que contiene el método que se va a importar. |
Best |
Habilita o deshabilita el comportamiento de asignación de ajuste perfecto al convertir caracteres Unicode en caracteres ANSI. |
Calling |
Indica la convención de llamada de un punto de entrada. |
Char |
Indica la forma de calcular las referencias de los parámetros de cadena al método, y controla los daños en los nombres. |
Entry |
Indica el nombre u ordinal del punto de entrada de la DLL al que se va a llamar. |
Exact |
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. |
Preserve |
Indica si los métodos no administrados que tienen |
Set |
Indica si el destinatario establece un error ( |
Throw |
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 "?". |
Type |
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. |
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. (Heredado de Attribute) |
Get |
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
Get |
Obtiene el Type de la instancia actual. (Heredado de Object) |
Is |
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) |
Memberwise |
Crea una copia superficial del Object actual. (Heredado de Object) |
To |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
_Attribute. |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
_Attribute. |
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. |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de Attribute) |
_Attribute. |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Heredado de Attribute) |
Produto | Versións |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Comentarios de .NET
.NET é un proxecto de código aberto. Selecciona unha ligazón para ofrecer comentarios: