Campo DllImportAttribute.ExactSpelling
Dica
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.
Controla se o campo DllImportAttribute.CharSet faz com que a Common Language Runtime pesquise uma DLL não gerenciada quanto a nomes de ponto de entrada diferentes daquele especificado.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (em mscorlib.dll)
Sintaxe
public bool ExactSpelling
public:
bool ExactSpelling
val mutable ExactSpelling : bool
Public ExactSpelling As Boolean
Valor do Campo
Type: System.Boolean
Comentários
Se false, o nome do ponto de entrada anexado com a letra A é invocado quando o DllImportAttribute.CharSet campo é definido como CharSet.Ansi, e o nome de ponto de entrada anexado com a letra W é invocado quando o DllImportAttribute.CharSet campo é definido como o CharSet.Unicode. Normalmente, os compiladores gerenciados defina este campo.
A tabela a seguir mostra a relação entre o CharSet e ExactSpelling campos, com base em valores padrão impostos pela linguagem de programação. Você pode substituir a configuração padrão, mas fazer isso com cuidado.
Linguagem |
ANSI |
Unicode |
Auto |
---|---|---|---|
Visual Basic |
ExactSpelling foi: = True |
ExactSpelling foi: = True |
ExactSpelling foi: = False |
C# |
ExactSpelling foi = false |
ExactSpelling foi = false |
ExactSpelling foi = false |
C++ |
ExactSpelling foi = false |
ExactSpelling foi = false |
ExactSpelling foi = false |
Exemplos
Em alguns casos, os desenvolvedores do Visual Basic usam o DllImportAttribute, em vez de usar o Declare instrução, para definir uma função de DLL no código gerenciado. Definindo o ExactSpelling campo é um dos casos.
public class Win32
{
[DllImport("user32.dll", CharSet=CharSet.Unicode,
ExactSpelling=true)]
public static extern int MessageBoxW(IntPtr hWnd, String text,
String caption, uint type);
}
Public Class Win32
<DllImport("user32.dll", ExactSpelling := False)> _
Public Shared Function MessageBox(hWnd As IntPtr, text As String, _
caption As String, type As UInteger) As Integer
End Function
End Class
[DllImport("user32.dll", CharSet=CharSet::Ansi, ExactSpelling=true)]
int MessageBoxA(IntPtr hWnd, String^ Text,
String^ Caption, unsigned int Type);
Informações de Versão
Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 8.0
Windows Phone
Disponível desde 8.1
Confira Também
Classe DllImportAttribute
Namespace System.Runtime.InteropServices
Retornar ao início