Поделиться через


DllImportAttribute.BestFitMapping Поле

Определение

Включает или отключает поведение наилучшего сопоставления при преобразовании знаков Юникода в знаки ANSI.

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

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

Примеры

В некоторых случаях разработчики Visual Basic используют DllImportAttributeDeclare вместо оператора , чтобы определить функцию DLL в управляемом коде. BestFitMapping Задание поля является одним из таких случаев. В следующем примере показано, как применить строгую безопасность сопоставления символов к определениям методов вызова платформы, указав набор символов ANSI, отключив оптимальное поведение сопоставления и создав исключение для несопоставленных символов Юникода.

[DllImport("My.dll", CharSet = CharSet::Ansi,
    BestFitMapping = false,
    ThrowOnUnmappableChar = true)]
int SomeFuncion2(int parm);
[DllImport("My.dll", CharSet = CharSet.Ansi,
    BestFitMapping = false,
    ThrowOnUnmappableChar = true)]
internal static extern int SomeFuncion2(int parm);
<DllImport("My.dll", CharSet:=CharSet.Ansi,
    BestFitMapping:=False,
    ThrowOnUnmappableChar:=True)>
Friend Shared Function SomeFuncion2(parm As Integer) As Integer
End Function

Комментарии

При trueзначении включено оптимальное поведение сопоставления; в противном случае лучшее сопоставление отключено. По BestFitMapping умолчанию используется true поле . Параметры этого поля переопределяют параметры любого уровня для атрибута System.Runtime.InteropServices.BestFitMappingAttribute .

Внимание!

Некоторые символы Юникода преобразуются в опасные символы, например символ обратной косой черты "\", который может случайно изменить путь. Задав ThrowOnUnmappableChar для поля значение true, можно сообщить вызывающей объекту о наличии неприменимого символа, создав исключение.

Внимание!

Нельзя изменить значения по умолчанию, предоставляемые полями BestFitMapping и ThrowOnUnmappableChar , при передаче управляемого массива, элементами которого являются символы ANSI или LPSTR, в неуправляемый безопасный массив. Лучшее сопоставление всегда включено, и исключение не создается. Имейте в виду, что такое сочетание может поставить под угрозу вашу модель безопасности.

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

См. также раздел