Partilhar via


DllImportAttribute.BestFitMapping Campo

Definição

Habilita ou desabilita o comportamento de mapeamento mais adequado ao converter caracteres Unicode em caracteres ANSI.

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

Valor do campo

Exemplos

Em alguns casos, os desenvolvedores do Visual Basic usam o DllImportAttribute, em vez da Declare instrução , para definir uma função DLL no código gerenciado. Definir o BestFitMapping campo é um desses casos. O exemplo a seguir mostra como aplicar a segurança de mapeamento de caracteres mais estrita a definições de método de invocação de plataforma especificando o conjunto de caracteres ANSI, desabilitando o melhor comportamento de mapeamento de ajuste e lançando uma exceção em caracteres Unicode não mapeados.

[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

Comentários

Se true, o comportamento de mapeamento de melhor ajuste está habilitado; caso contrário, o mapeamento de melhor ajuste será desabilitado. O BestFitMapping campo é true por padrão. As configurações desse campo substituem as configurações de qualquer nível para o System.Runtime.InteropServices.BestFitMappingAttribute atributo.

Cuidado

Determinados caracteres Unicode são convertidos em caracteres perigosos, como o caractere de barra invertida '\', que pode alterar inadvertidamente um caminho. Ao definir o ThrowOnUnmappableChar campo truecomo , você pode sinalizar a presença de um caractere inaplicativo para o chamador lançando uma exceção.

Cuidado

Não é possível alterar os valores padrão fornecidos pelos BestFitMapping campos e ThrowOnUnmappableChar ao passar uma matriz gerenciada cujos elementos são ANSI Chars ou LPSTRs para uma matriz segura não gerenciada. O mapeamento de melhor ajuste está sempre habilitado e nenhuma exceção é gerada. Lembre-se de que essa combinação pode comprometer seu modelo de segurança.

Aplica-se a

Confira também