Partager via


DllImportAttribute.BestFitMapping Champ

Définition

Active ou désactive le comportement de mappage ajusté lors de la conversion de caractères Unicode en caractères ANSI.

public: bool BestFitMapping;
public bool BestFitMapping;
val mutable BestFitMapping : bool
Public BestFitMapping As Boolean 

Valeur de champ

Exemples

Dans certains cas, les développeurs Visual Basic utilisent l’instruction DllImportAttribute, au lieu de l’instruction Declare , pour définir une fonction DLL dans du code managé. La définition du BestFitMapping 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

Si truela valeur est , le comportement de mappage le mieux adapté est activé ; sinon, le mappage le mieux adapté est désactivé. Le BestFitMapping champ est true par défaut. Les paramètres de ce champ remplacent les paramètres de n’importe quel niveau pour l’attribut System.Runtime.InteropServices.BestFitMappingAttribute .

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