DllImportAttribute.BestFitMapping Campo

Definizione

Abilita o disabilita il comportamento di mapping più appropriato per la conversione di caratteri Unicode in caratteri ANSI.Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.

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

Valore del campo

Esempi

In alcuni casi, Visual Basic sviluppatori utilizzano DllImportAttribute, anziché l' Declare istruzione, per definire una funzione di dll nel codice gestito.In some cases, Visual Basic developers use the DllImportAttribute, instead of the Declare statement, to define a DLL function in managed code. L'impostazione BestFitMapping del campo è uno di questi casi.Setting the BestFitMapping field is one of those cases. Nell'esempio seguente viene illustrato come applicare la sicurezza del mapping dei caratteri più restrittiva a una platform invoke definizioni del metodo specificando il set di caratteri ANSI, disabilitando il comportamento di mapping più appropriato e generando un'eccezione sui caratteri Unicode non mappati.The following example shows how to apply the strictest character mapping security to a platform invoke method definitions by specifying the ANSI character set, disabling best fit mapping behavior, and throwing an exception on unmapped Unicode characters.

[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

Commenti

Se true, il comportamento di mapping con mapping più appropriato è abilitato; in caso contrario, il mapping più appropriato è disabilitato.If true, best-fit mapping behavior is enabled; otherwise, best-fit mapping is disabled. Per BestFitMapping impostazione predefinita true , il campo è.The BestFitMapping field is true by default. Le impostazioni per questo campo sostituiscono le impostazioni di qualsiasi System.Runtime.InteropServices.BestFitMappingAttribute livello per l'attributo.Settings for this field override the any level settings for the System.Runtime.InteropServices.BestFitMappingAttribute attribute.

Il Common Language Runtime converte in caratteri ANSI tutti i caratteri Unicode gestiti passati a un metodo non gestito eseguito in Windows 98 o Windows me.The common language runtime converts to ANSI characters any managed Unicode characters passed to an unmanaged method executing on Windows 98 or Windows Me. Il mapping con mapping più appropriato consente al gestore di marshalling di interoperabilità di fornire un carattere di chiusura corrispondente quando non esiste alcuna corrispondenza esatta.Best-fit mapping enables the interop marshaler to provide a close-matching character when no exact match exists. Ad esempio, il gestore di marshalling converte il carattere di copyright Unicode in ' c'per i metodi non gestiti che accettano caratteri ANSI.For example, the marshaler converts the Unicode copyright character to 'c' for unmanaged methods that accept ANSI characters. Alcuni caratteri non dispongono di una rappresentazione più adatta; questi caratteri sono denominati unmappable.Some characters lack a best-fit representation; these characters are called unmappable. I caratteri unmappable vengono in genere convertiti nell'impostazione predefinità?' Carattere ANSI.Unmappable characters are usually converted to the default '?' ANSI character.

Attenzione

Determinati caratteri Unicode vengono convertiti in caratteri pericolosi, ad esempio il carattere\barra rovesciata '', che può modificare inavvertitamente un percorso.Certain Unicode characters are converted to dangerous characters, such as the backslash '\' character, which can inadvertently change a path. Impostando il ThrowOnUnmappableChar campo su true, è possibile segnalare la presenza di un carattere unmappable al chiamante generando un'eccezione.By setting the ThrowOnUnmappableChar field to true, you can signal the presence of an unmappable character to the caller by throwing an exception.

Attenzione

Non è possibile modificare i valori predefiniti forniti dai BestFitMapping campi ThrowOnUnmappableChar e quando si passa una matrice gestita i cui elementi sono ANSI chars o LPSTR a una matrice sicura non gestita.You cannot change the default values provided by the BestFitMapping and ThrowOnUnmappableChar fields when passing a managed array whose elements are ANSI Chars or LPSTRs to an unmanaged safe array. Il mapping più appropriato è sempre abilitato e non viene generata alcuna eccezione.Best-fit mapping is always enabled and no exception is thrown. Tenere presente che questa combinazione può compromettere il modello di sicurezza.Be aware that this combination can compromise your security model.

Si applica a

Vedi anche