DllImportAttribute.ExactSpelling Pole
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 false
nazwa 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 |