DllImportAttribute.ExactSpelling Поле

Определение

Определяет, вызывает ли CharSet поле среду CLR поиск неуправляемой библиотеки DLL для имен точек входа, отличных от указанного.

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

Значение поля

Примеры

В некоторых случаях разработчики Visual Basic используют DllImportAttribute вместо использования инструкции Declare для определения функции DLL в управляемом коде. ExactSpelling Установка поля является одним из этих случаев.

[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

Комментарии

Если false, имя точки входа, добавленное с буквой A, вызывается, когда DllImportAttribute.CharSet поле заданоCharSet.Ansi, и имя точки входа, добавленное с буквой W, вызывается, когда DllImportAttribute.CharSet поле задано.CharSet.Unicode Как правило, управляемые компиляторы задают это поле.

В следующей таблице показана связь между CharSet полями и ExactSpelling значениями по умолчанию, введенными языком программирования. Вы можете переопределить параметр по умолчанию, но сделать это с осторожностью.

Язык ANSI (Американский национальный институт стандартов) Юникод Auto
Visual Basic ExactSpelling:=True ExactSpelling:=True ExactSpelling:=False
C# ExactSpelling=false ExactSpelling=false ExactSpelling=false
C++ ExactSpelling=false ExactSpelling=false ExactSpelling=false

Применяется к