DllImportAttribute.ExactSpelling Pole

Definice

Určuje, zda pole způsobí, že CharSet modul CLR (Common Language Runtime) prohledá nespravovanou knihovnu DLL pro jiné názvy vstupních bodů, než je zadaný.

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

Hodnota pole

Příklady

V některých případech vývojáři Visual Basic používají DllImportAttribute místo příkazu Declare k definování funkce knihovny DLL ve spravovaném kódu. ExactSpelling Nastavení pole je jedním z těchto případů.

[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

Poznámky

Pokud falsese při nastavení DllImportAttribute.CharSetpole vyvolá CharSet.Ansi název vstupního bodu s písmenem A a při nastavení DllImportAttribute.CharSetpole se vyvolá CharSet.Unicode název vstupního bodu s písmenem W. Spravované kompilátory obvykle nastavují toto pole.

Následující tabulka ukazuje vztah mezi poli CharSet a ExactSpelling poli na základě výchozích hodnot uložených programovacím jazykem. Výchozí nastavení můžete přepsat, ale postupujte opatrně.

Jazyk organizace ANSI Unicode Auto
Visual Basic ExactSpelling:=True ExactSpelling:=True ExactSpelling:=False
jazyk C# ExactSpelling=false ExactSpelling=false ExactSpelling=false
C++ ExactSpelling=false ExactSpelling=false ExactSpelling=false

Platí pro