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 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 alle definizioni di metodo platform invoke specificando il set di caratteri ANSI, disabilitando il comportamento di mapping più appropriato e generando un'eccezione sui 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 più appropriato è abilitato; in caso contrario, il mapping più appropriato è disabilitato. Il BestFitMapping campo è true
per impostazione predefinita. Le impostazioni per questo campo sostituiscono le impostazioni di livello per l'attributo System.Runtime.InteropServices.BestFitMappingAttribute .
Attenzione
Alcuni caratteri Unicode vengono convertiti in caratteri pericolosi, ad esempio il carattere barra rovesciata '\', che può inavvertitamente modificare un percorso. Impostando il ThrowOnUnmappableChar campo su true
, è possibile segnalare la presenza di un carattere non modificabile 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 più appropriato è sempre abilitato e non viene generata alcuna eccezione. Tenere presente che questa combinazione può compromettere il modello di sicurezza.
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per