DllImportAttribute.ThrowOnUnmappableChar Champ

Définition

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 du 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 aux définitions de méthode d’appel de plateforme en spécifiant le jeu de caractères ANSI, en désactivant le comportement de mappage le plus 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 inappable ; 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, comme la 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 BestFitMapping champs et ThrowOnUnmappableChar lors du passage d’un tableau managé dont les éléments sont des chars ANSI ou des 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é.

S’applique à

Voir aussi