DllImportAttribute.ThrowOnUnmappableChar Champ
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Active ou désactive la levée d'une exception sur un caractère Unicode non mappable converti en caractère ANSI "?".
public: bool ThrowOnUnmappableChar;
public bool ThrowOnUnmappableChar;
val mutable ThrowOnUnmappableChar : bool
Public ThrowOnUnmappableChar As Boolean
Valeur de champ
Exemples
Dans certains cas, les développeurs Visual Basic utilisent pour DllImportAttribute définir une fonction DLL dans le code managé, au lieu d’utiliser l’instruction Declare
. La définition du ThrowOnUnmappableChar champ est l’un de ces cas. L’exemple suivant montre comment appliquer la sécurité de mappage de caractères la plus stricte à une définition de méthode d’appel de plateforme en spécifiant le jeu de caractères ANSI, en désactivant le comportement de mappage le mieux adapté et en lisant une exception sur les caractères Unicode non mappés.
[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
Remarques
true
pour indiquer qu’une exception est levée chaque fois que le marshaleur d’interopérabilité convertit un caractère non utilisable ; false
pour indiquer que le ThrowOnUnmappableChar champ est désactivé. Ce champ est défini par défaut sur false
.
Attention
Certains caractères Unicode sont convertis en caractères dangereux, tels que le caractère de barre oblique inverse « \ », qui peut modifier par inadvertance un chemin d’accès. En définissant le ThrowOnUnmappableChar champ sur true
, vous pouvez signaler la présence d’un caractère non appappable à l’appelant en lisant une exception.
Attention
Vous ne pouvez pas modifier les valeurs par défaut fournies par les champs et ThrowOnUnmappableChar lors du BestFitMapping passage d’un tableau managé dont les éléments sont ANSI Chars ou LPSTRs à un tableau sécurisé non managé. Le mappage le mieux adapté est toujours activé et aucune exception n’est levée. N’oubliez pas que cette combinaison peut compromettre votre modèle de sécurité.