Condividi tramite


DllImportAttribute.BestFitMapping Campo

Definizione

Abilita o disabilita il comportamento di mapping più appropriato per la conversione di caratteri Unicode in caratteri ANSI.

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

Valore del campo

Esempio

In alcuni casi, gli sviluppatori di Visual Basic usano , DllImportAttributeanziché l'istruzione Declare , per definire una funzione DLL nel codice gestito. L'impostazione del BestFitMapping campo è uno di questi casi. Nell'esempio seguente viene illustrato come applicare la sicurezza più rigorosa del mapping dei caratteri a una piattaforma richiama le definizioni dei metodi specificando il set di caratteri ANSI, disabilitando il comportamento di mapping più adatto e generando un'eccezione su caratteri Unicode non mappati.

[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 ottimale è abilitato; in caso contrario, il mapping ottimale è disabilitato. Il BestFitMapping campo è true per impostazione predefinita. Le impostazioni per questo campo eseguono l'override delle impostazioni di livello per l'attributo System.Runtime.InteropServices.BestFitMappingAttribute .

Attenzione

Alcuni caratteri Unicode vengono convertiti in caratteri pericolosi, ad esempio la barra rovesciata '\', che può modificare inavvertitamente un percorso. Impostando il ThrowOnUnmappableChar campo su true, è possibile segnalare la presenza di un carattere non valido al chiamante generando un'eccezione.

Attenzione

Non è possibile modificare i valori predefiniti forniti dai BestFitMapping campi e ThrowOnUnmappableChar quando si passa una matrice gestita i cui elementi sono caratteri ANSI o LPSTR a una matrice sicura non gestita. Il mapping ottimale è sempre abilitato e non viene generata alcuna eccezione. Tenere presente che questa combinazione può compromettere il modello di sicurezza.

Si applica a

Vedi anche