DllImportAttribute.ThrowOnUnmappableChar Mező
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.