DllImportAttribute.ExactSpelling Feld

Definition

Steuert, ob das CharSet-Feld die Common Language Runtime anweist, eine nicht verwaltete DLL nach anderen Einstiegspunktnamen als dem angegebenen zu durchsuchen.

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

Feldwert

Beispiele

In einigen Fällen verwenden Visual Basic-Entwickler anstelle der DllImportAttributeDeclare -Anweisung, um eine DLL-Funktion in verwaltetem Code zu definieren. Das Festlegen des ExactSpelling Felds ist einer dieser Fälle.

[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

Hinweise

Wenn false, wird der Mit dem Buchstaben A angefügte Einstiegspunktname aufgerufen, wenn das DllImportAttribute.CharSet Feld auf CharSet.Ansifestgelegt ist, und der Mit dem Buchstaben W angefügte Einstiegspunktname wird aufgerufen, wenn das DllImportAttribute.CharSet Feld auf CharSet.Unicodefestgelegt ist. In der Regel legen verwaltete Compiler dieses Feld fest.

Die folgende Tabelle zeigt die Beziehung zwischen den CharSet Feldern und ExactSpelling basierend auf den Standardwerten, die von der Programmiersprache auferlegt werden. Sie können die Standardeinstellung überschreiben, tun Sie dies jedoch mit Vorsicht.

Sprache ANSI Unicode Automatisch
Visual Basic ExactSpelling:=True ExactSpelling:=True ExactSpelling:=False
C# ExactSpelling=false ExactSpelling=false ExactSpelling=false
C++ ExactSpelling=false ExactSpelling=false ExactSpelling=false

Gilt für: