DllImportAttribute.BestFitMapping 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 nejlepší chování mapování při převodu znaků Unicode na znaky ANSI.
public: bool BestFitMapping;
public bool BestFitMapping;
val mutable BestFitMapping : bool
Public BestFitMapping As Boolean
Hodnota pole
Příklady
V některých případech používají vývojáři Visual Basic funkci DllImportAttribute místo příkazu Declare k definování funkce knihovny DLL ve spravovaném kódu.
BestFitMapping 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
Pokud trueje povolené chování mapování s nejlepším přizpůsobením, v opačném případě je mapování nejlepšího přizpůsobení zakázáno. Pole BestFitMapping je true ve výchozím nastavení. Nastavení pro toto pole přepíší všechna nastavení úrovně atributu System.Runtime.InteropServices.BestFitMappingAttribute .
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í.