DllImportAttribute.BestFitMapping Campo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.