DllImportAttribute.ExactSpelling Campo
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í.
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.
public: bool ExactSpelling;
public bool ExactSpelling;
val mutable ExactSpelling : bool
Public ExactSpelling As Boolean
Valor de campo
Ejemplos
En algunos casos, los desarrolladores de Visual Basic usan DllImportAttribute, en lugar de usar la Declare
instrucción , para definir una función DLL en código administrado. Establecer el ExactSpelling campo es uno de esos casos.
[DllImport("user32.dll", CharSet = CharSet::Ansi, ExactSpelling = true)]
int MessageBoxA(IntPtr hWnd, String^ Text,
String^ Caption, unsigned int Type);
internal static class NativeMethods
{
[DllImport("user32.dll", CharSet = CharSet.Unicode,
ExactSpelling = true)]
internal static extern int MessageBoxW(
IntPtr hWnd, string lpText, string lpCption, uint uType);
}
Friend Class NativeMethods
<DllImport("user32.dll", ExactSpelling:=False)>
Friend Shared Function MessageBox(hWnd As IntPtr, lpText As String,
lpCaption As String, uType As UInteger) As Integer
End Function
End Class
Comentarios
Si false
es , se invoca el nombre del punto de entrada anexado con la letra A cuando el DllImportAttribute.CharSet campo se establece CharSet.Ansi
en y el nombre del punto de entrada anexado con la letra W cuando el DllImportAttribute.CharSet campo se establece en .CharSet.Unicode
Normalmente, los compiladores administrados establecen este campo.
En la tabla siguiente se muestra la relación entre los CharSet campos y ExactSpelling , en función de los valores predeterminados impuestos por el lenguaje de programación. Puede invalidar la configuración predeterminada, pero hacerlo con precaución.
Idioma | ANSI | Unicode | Auto |
---|---|---|---|
Visual Basic | ExactSpelling:=True | ExactSpelling:=True | ExactSpelling:=False |
C# | ExactSpelling=false | ExactSpelling=false | ExactSpelling=false |
C++ | ExactSpelling=false | ExactSpelling=false | ExactSpelling=false |