Compartilhar via


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