DllImportAttribute.ThrowOnUnmappableChar Campo

Definição

Permite ou desativa o lançamento de uma exceção num carácter Unicode impossível de mapear que é convertido para um carácter ANSI "?".

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

Valor de Campo

Exemplos

Em alguns casos, Visual Basic programadores usam o DllImportAttribute para definir uma função DLL em código gerido, em vez de usar a instrução Declare. Definir o ThrowOnUnmappableChar campo é um desses casos. O exemplo seguinte mostra como aplicar a segurança mais rigorosa do mapeamento de caracteres às definições de métodos de invocação de uma plataforma, especificando o conjunto de caracteres ANSI, desativando o comportamento de mapeamento de melhor 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

Observações

true indicar que uma exceção é lançada cada vez que o marshaler interop converte um carácter não mapeável; false para indicar que o ThrowOnUnmappableChar campo está desativado. Este campo é false por defeito.

Atenção

Certos caracteres Unicode são convertidos em caracteres perigosos, como a barra inversa '\', que pode alterar inadvertidamente um caminho. Ao definir o ThrowOnUnmappableChar campo para true, pode sinalizar a presença de um carácter impossível de mapear ao chamador, lançando uma exceção.

Atenção

Não pode alterar os valores predefinidos fornecidos pelos BestFitMapping campos e ThrowOnUnmappableChar ao passar um array gerido cujos elementos são ANSI Chars ou LPSTRs para um array seguro não gerido. O mapeamento de melhor ajuste está sempre ativado e não há exceção. Tenha em atenção que esta combinação pode comprometer o seu modelo de segurança.

Aplica-se a

Ver também