DllImportAttribute.ExactSpelling Campo

Definizione

Controlla se il CharSet campo fa sì che Common Language Runtime esequisi una DLL non gestita per individuare nomi di punti di ingresso diversi da quello specificato.

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

Valore del campo

Esempio

In alcuni casi, Visual Basic sviluppatori usano il DllImportAttribute, anziché usare l'istruzione Declare, per definire una funzione DLL nel codice gestito. L'impostazione del ExactSpelling campo è uno di questi casi.

[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

Commenti

Se false, il nome del punto di ingresso accodato con la lettera A viene richiamato quando il DllImportAttribute.CharSet campo è impostato su CharSet.Ansie il nome del punto di ingresso accodato con la lettera W viene richiamato quando il DllImportAttribute.CharSet campo viene impostato su CharSet.Unicode. In genere, i compilatori gestiti impostano questo campo.

Nella tabella seguente viene illustrata la relazione tra i CharSet campi e ExactSpelling in base ai valori predefiniti imposti dal linguaggio di programmazione. È possibile eseguire l'override dell'impostazione predefinita, ma prestare attenzione.

Language ANSI (Istituto Nazionale Americano degli Standard) Unicode Auto
Visual Basic ExactSpelling:=True ExactSpelling:=True ExactSpelling:=False
C# ExactSpelling=false ExactSpelling=false ExactSpelling=false
C++ ExactSpelling=false ExactSpelling=false ExactSpelling=false

Si applica a