DllImportAttribute.ThrowOnUnmappableChar Mező

Definíció

Engedélyezi vagy letiltja a kivételt egy nem alkalmazható Unicode-karakterre, amely ANSI "?" karakterré lesz konvertálva.

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

Mező értéke

Példák

Bizonyos esetekben Visual Basic fejlesztők a DllImportAttribute használatával definiálnak EGY DLL-függvényt a felügyelt kódban a Declare utasítás helyett. ThrowOnUnmappableChar A mező beállítása az ilyen esetek egyike. Az alábbi példa bemutatja, hogyan alkalmazhatja a legszigorúbb karakterleképezési biztonságot a platformhívási metódusdefiníciókra az ANSI-karakterkészlet megadásával, a legjobb illesztési viselkedés letiltásával, valamint a leképezetlen Unicode-karakterek kivételének kizárásával.

[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

Megjegyzések

true annak jelzésére, hogy a rendszer kivételt vet ki minden alkalommal, amikor az interop marshaler egy nem alkalmazható karaktert alakít át; false jelzi, hogy a ThrowOnUnmappableChar mező le van tiltva. Ez a mező alapértelmezés szerint.false

Figyelmeztetés

Bizonyos Unicode-karakterek veszélyes karakterekké alakulnak, például a fordított perjel "\" karakterré, amely véletlenül megváltoztathatja az elérési utat. Ha a mezőt ThrowOnUnmappableCharúgy true állítja be, hogy egy nem alkalmazható karakter jelenik meg a hívónak, kivételt jelezhet.

Figyelmeztetés

A felügyelt tömbök ANSI-karakterekkel vagy LPSTR-ekkel rendelkező elemeinek nem felügyelt biztonságos tömbbe való továbbításakor a mezők és BestFitMapping a ThrowOnUnmappableChar mezők által megadott alapértelmezett értékek nem módosíthatók. A legjobban illeszkedő leképezés mindig engedélyezve van, és nincs kivétel. Vegye figyelembe, hogy ez a kombináció veszélyeztetheti a biztonsági modellt.

A következőre érvényes:

Lásd még