DllImportAttribute.ExactSpelling Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Контролирует запуск поиска имен точек входа помимо заданной точки в неуправляемой динамической библиотеке (DLL), выполняемого средой CLR, полем CharSet.
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 |