DllImportAttribute.ExactSpelling Campo
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Controla se o CharSet campo faz com que o runtime da linguagem comum procure numa DLL não gerida nomes de pontos de entrada diferentes do especificado.
public: bool ExactSpelling;
public bool ExactSpelling;
val mutable ExactSpelling : bool
Public ExactSpelling As Boolean
Valor de Campo
Exemplos
Em alguns casos, Visual Basic programadores usam a DllImportAttribute, em vez da instrução Declare, para definir uma função DLL em código gerido. 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
Observações
Se false, o nome do ponto de entrada anexado à letra A é invocado quando o DllImportAttribute.CharSet campo está definido como CharSet.Ansi, e o nome do ponto de entrada associado à letra W é invocado quando o DllImportAttribute.CharSet campo está definido para .CharSet.Unicode Normalmente, os compiladores geridos definem este campo.
A tabela seguinte mostra a relação entre os CharSet campos e, ExactSpelling com base nos valores padrão impostos pela linguagem de programação. Podes sobrescrever a definição padrão, mas faz isso com cautela.
| Linguagem | ANSI (Instituto Nacional Americano de Normalização) | Unicode | Auto |
|---|---|---|---|
| Visual Basic | ExactSpelling:=True | ExactSpelling:=True | ExactSpelling:=False |
| C# | ExactSpelling=false | ExactSpelling=false | ExactSpelling=false |
| C++ | ExactSpelling=false | ExactSpelling=false | ExactSpelling=false |