DllImportAttribute.BestFitMapping Campo
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Habilita o deshabilita el comportamiento de asignación de ajuste perfecto al convertir caracteres Unicode en caracteres ANSI.
public: bool BestFitMapping;
public bool BestFitMapping;
val mutable BestFitMapping : bool
Public BestFitMapping As Boolean
Valor de campo
Ejemplos
En algunos casos, los desarrolladores de Visual Basic usan , DllImportAttributeen lugar de la Declare
instrucción , para definir una función DLL en código administrado. Establecer el BestFitMapping campo es uno de esos casos. En el ejemplo siguiente se muestra cómo aplicar la seguridad de asignación de caracteres más estricta a las definiciones de métodos de invocación de plataforma especificando el juego de caracteres ANSI, deshabilitando el comportamiento de asignación de ajuste óptimo e iniciando una excepción en caracteres Unicode sin asignar.
[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
Comentarios
Si true
es , el comportamiento de asignación de ajuste adecuado está habilitado; de lo contrario, la asignación de ajuste adecuado está deshabilitada. El BestFitMapping campo es true
de forma predeterminada. La configuración de este campo invalida la configuración de cualquier nivel para el System.Runtime.InteropServices.BestFitMappingAttribute atributo .
Precaución
Algunos caracteres Unicode se convierten en caracteres peligrosos, como el carácter de barra diagonal inversa '\', que puede cambiar accidentalmente una ruta de acceso. Al establecer el ThrowOnUnmappableChar campo true
en , puede indicar la presencia de un carácter no aplicable al autor de la llamada iniciando una excepción.
Precaución
No se pueden cambiar los valores predeterminados proporcionados por los BestFitMapping campos y ThrowOnUnmappableChar al pasar una matriz administrada cuyos elementos son caracteres ANSI o LPSTR a una matriz segura no administrada. La asignación más adecuada siempre está habilitada y no se produce ninguna excepción. Tenga en cuenta que esta combinación puede poner en peligro el modelo de seguridad.