DllImportAttribute.ExactSpelling Pole

Definicja

Określa, CharSet czy pole powoduje, że środowisko uruchomieniowe języka wspólnego wyszukuje niezarządzaną bibliotekę DLL pod kątem nazw punktów wejścia innych niż określona.

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

Wartość pola

Przykłady

W niektórych przypadkach deweloperzy języka Visual Basic używają instrukcji DllImportAttribute, zamiast używać Declare instrukcji , aby zdefiniować funkcję DLL w kodzie zarządzanym. ExactSpelling Ustawienie pola jest jednym z tych przypadków.

[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

Uwagi

Jeśli falsenazwa punktu wejścia dołączona literą A jest wywoływana, gdy DllImportAttribute.CharSet pole jest ustawione na CharSet.Ansi, a nazwa punktu wejścia dołączona literą W jest wywoływana, gdy DllImportAttribute.CharSet pole jest ustawione na CharSet.Unicode. Zazwyczaj zarządzane kompilatory ustawiają to pole.

W poniższej tabeli przedstawiono relację między polami CharSet i ExactSpelling na podstawie wartości domyślnych narzuconych przez język programowania. Możesz zastąpić ustawienie domyślne, ale należy to zrobić ostrożnie.

Język 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

Dotyczy