DllImportAttribute.ExactSpelling Pole

Definice

Určuje, zda CharSet pole způsobí, že modul CLR (Common Language Runtime) vyhledá v nespravované knihovně DLL jiné názvy vstupních bodů než 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 používají vývojáři jazyka Visual Basic k definování funkce knihovny DLL ve spravovaném DllImportAttributekódu místo Declare příkazu . 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 false, název vstupního bodu připojený k písmenu A se vyvolá při DllImportAttribute.CharSet nastavení pole na CharSet.Ansihodnotu a název vstupního bodu připojený k písmenu W se vyvolá, když DllImportAttribute.CharSet je pole nastaveno CharSet.Unicodena . Toto pole obvykle nastavují spravované kompilátory.

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

Jazyk ANSI Kódování Unicode Auto
Visual Basic ExactSpelling:=True ExactSpelling:=True ExactSpelling:=False
C# ExactSpelling=false ExactSpelling=false ExactSpelling=false
C++ ExactSpelling=false ExactSpelling=false ExactSpelling=false

Platí pro