Partager via


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 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é.

S’applique à

Voir aussi