DllImportAttribute.ExactSpelling Champ

Définition

Contrôle si le champ CharSet déclenche la recherche de noms, par le Common Language Runtime, de points d'entrée autres que celui spécifié dans la DLL non managée.

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

Valeur de champ

Exemples

Dans certains cas, les développeurs Visual Basic utilisent l’instruction DllImportAttribute, au lieu d’utiliser l’instruction Declare , pour définir une fonction DLL dans du code managé. La définition du ExactSpelling champ est l’un de ces cas.

[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

Remarques

Si false, le nom du point d’entrée ajouté à la lettre A est appelé lorsque le DllImportAttribute.CharSet champ est défini sur CharSet.Ansi, et le nom du point d’entrée ajouté à la lettre W est appelé lorsque le DllImportAttribute.CharSet champ est défini sur .CharSet.Unicode En règle générale, les compilateurs managés définissent ce champ.

Le tableau suivant montre la relation entre les CharSet champs et ExactSpelling , en fonction des valeurs par défaut imposées par le langage de programmation. Vous pouvez remplacer le paramètre par défaut, mais faites-le avec précaution.

Langage 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

S’applique à