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 používají vývojáři jazyka DllImportAttribute Visual Basic k definování funkce knihovny DLL ve spravovaném kódu místo použití Declare
příkazu .
ThrowOnUnmappableChar Nastavení pole je jedním z těchto případů. Následující příklad ukazuje, jak použít nejpřísnější zabezpečení mapování znaků na definice metody volání platformy zadáním znakové sady ANSI, zakázáním nejvhodnější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
chcete-li označit, že je vyvolán výjimka pokaždé, když zařazovač zprostředkovatele komunikace převede nenamapovatelný znak; false
označující, že ThrowOnUnmappableChar pole je zakázané. Toto pole je false
ve výchozím nastavení.
Upozornění
Některé znaky Unicode jsou převedeny na nebezpečné znaky, například zpětné lomítko "\", které mohou neúmyslně změnit cestu.
ThrowOnUnmappableChar Nastavením pole na true
můžete volajícímu signalizovat přítomnost nemapovatelného znaku vyvoláním výjimky.
Upozornění
Výchozí hodnoty zadané BestFitMapping poli a ThrowOnUnmappableChar nelze změnit při předávání spravovaného pole, jehož prvky jsou znaky ANSI nebo LPSTR do nespravovaného bezpečného pole. Mapování nejlepších velikostí je vždy povolené a nevyvolá se žádná výjimka. Mějte na paměti, že tato kombinace může ohrozit váš model zabezpečení.