DllImportAttribute.ExactSpelling Поле

Определение

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

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

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

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

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