DllImportAttribute.ExactSpelling-Feld

 

Veröffentlicht: Oktober 2016

Steuerelemente, ob die DllImportAttribute.CharSet Feld bewirkt, dass die common Language Runtime eine nicht verwaltete DLL-Einstiegspunkt andere als die angegebene Namen gesucht.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

Syntax

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

Feldwert

Type: System.Boolean

Hinweise

Wenn false, Einstiegspunktname, die mit dem Buchstaben A wird aufgerufen, wenn die DllImportAttribute.CharSet Feld CharSet.Ansi, und dem Namen des Einstiegspunkts mit dem Buchstaben W angehängten aufgerufen wird beim der DllImportAttribute.CharSet Feld der CharSet.Unicode. Dieses Feld wird üblicherweise von verwalteten Compiler festgelegt.

Die folgende Tabelle zeigt die Beziehung zwischen der CharSet und ExactSpelling Feldern basierend auf Standardwerte, die durch die Programmiersprache eingeführt. Sie können die Standardeinstellung überschreiben jedoch mit Vorsicht tun.

Sprache

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

Beispiele

In einigen Fällen verwenden Visual Basic-Entwickler die DllImportAttribute, anstatt die Declare Anweisung, um eine DLL-Funktion in verwaltetem Code zu definieren. Festlegen der ExactSpelling Feld ist ein solcher Fall.

public class Win32
{
    [DllImport("user32.dll", CharSet=CharSet.Unicode,
        ExactSpelling=true)]
    public static extern int MessageBoxW(IntPtr hWnd, String text,
                                String caption, uint type);
}
Public Class Win32
    <DllImport("user32.dll", ExactSpelling := False)> _
    Public Shared Function MessageBox(hWnd As IntPtr, text As String, _
               caption As String, type As UInteger) As Integer
    End Function
End Class
[DllImport("user32.dll", CharSet=CharSet::Ansi, ExactSpelling=true)]
int MessageBoxA(IntPtr hWnd, String^ Text,
                String^ Caption, unsigned int Type);

Versionsinformationen

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1

Siehe auch

DllImportAttribute-Klasse
System.Runtime.InteropServices-Namespace

Zurück zum Anfang