DllImportAttribute.ExactSpelling Campo

Definição

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.

public: bool ExactSpelling;
public bool ExactSpelling;
val mutable ExactSpelling : bool
Public ExactSpelling As Boolean 

Valor do campo

Exemplos

Em alguns casos, Visual Basic desenvolvedores usam o DllImportAttribute, em vez de usar a instrução Declare, para definir uma função DLL no código gerenciado. Definir o ExactSpelling campo é um desses 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

Comentários

Se false, o nome do ponto de entrada acrescentado com a letra A é invocado quando o DllImportAttribute.CharSet campo é definido CharSet.Ansicomo , e o nome do ponto de entrada acrescentado com a letra W é invocado quando o DllImportAttribute.CharSet campo é definido como CharSet.Unicode. Normalmente, os compiladores gerenciados definem esse campo.

A tabela a seguir mostra a relação entre os campos e ExactSpelling os CharSet campos, com base nos valores padrão impostos pela linguagem de programação. Você pode substituir a configuração padrão, mas fazê-lo com cuidado.

Linguagem 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

Aplica-se a