DllImportAttribute.ThrowOnUnmappableChar Pole
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Povolí nebo zakáže vyvolání výjimky u nemapovatelného znaku Unicode, který je převeden na znak ANSI "?" .
public: bool ThrowOnUnmappableChar;
public bool ThrowOnUnmappableChar;
val mutable ThrowOnUnmappableChar : bool
Public ThrowOnUnmappableChar As Boolean
Hodnota pole
Příklady
V některých případech Visual Basic vývojáři místo příkazu DllImportAttribute definují funkci knihovny DLL ve spravovaném kódu pomocí Declare.
ThrowOnUnmappableChar Nastavení pole je jedním z těchto případů. Následující příklad ukazuje, jak použít nejtriktnější zabezpečení mapování znaků na platformu vyvolat definice metody zadáním znakové sady ANSI, zakázáním nejlepšího chování mapování a vyvoláním výjimky u nemapovaných znaků Unicode.
[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
Poznámky
true k označení, že je vyvolán výjimka pokaždé, když zprostředkovatele komunikace převede nemapovatelný znak; false označující, že ThrowOnUnmappableChar je pole zakázané. Toto pole je false ve výchozím nastavení.
Caution
Některé znaky Unicode se převedou na nebezpečné znaky, například zpětné lomítko \, což může neúmyslně změnit cestu. Nastavením pole na ThrowOnUnmappableChartrue, můžete signalizovat přítomnost nemapovatelného znaku volajícímu vyvoláním výjimky.
Caution
Při předávání spravovaného pole, jehož prvky jsou znaky ANSI nebo LPSTR, nelze změnit výchozí hodnoty poskytnuté poli BestFitMapping a ThrowOnUnmappableChar polemi, které jsou nespravovaným bezpečným polem. Mapování nejvhodnějších možností je vždy povolené a není vyvolán žádná výjimka. Mějte na paměti, že tato kombinace může ohrozit váš model zabezpečení.