DllImportAttribute.BestFitMapping Pole
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Włącza lub wyłącza zachowanie mapowania najlepiej dopasowane podczas konwertowania znaków Unicode na znaki ANSI.
public: bool BestFitMapping;
public bool BestFitMapping;
val mutable BestFitMapping : bool
Public BestFitMapping As Boolean
Wartość pola
Przykłady
W niektórych przypadkach deweloperzy języka Visual Basic używają instrukcji DllImportAttribute, a nie Declare
instrukcji , aby zdefiniować funkcję DLL w kodzie zarządzanym.
BestFitMapping Ustawienie pola jest jednym z tych przypadków. W poniższym przykładzie pokazano, jak zastosować najostrzejsze zabezpieczenia mapowania znaków do definicji metod wywoływanych przez platformę, określając zestaw znaków ANSI, wyłączając najlepsze zachowanie mapowania i zgłaszając wyjątek dla niemapowanych znaków 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
Uwagi
Jeśli true
jest włączone zachowanie mapowania najlepszego dopasowania; w przeciwnym razie mapowanie najlepszego dopasowania jest wyłączone. Pole BestFitMapping jest true
domyślnie. Ustawienia dla tego pola zastępują wszystkie ustawienia poziomu atrybutu System.Runtime.InteropServices.BestFitMappingAttribute .
Przestroga
Niektóre znaki Unicode są konwertowane na niebezpieczne znaki, takie jak ukośnik odwrotny "\", który może przypadkowo zmienić ścieżkę. Ustawiając ThrowOnUnmappableChar pole na true
, można zasygnalizować obecność niestosowalnego znaku do obiektu wywołującego, zgłaszając wyjątek.
Przestroga
Nie można zmienić wartości domyślnych dostarczonych przez BestFitMapping pola i ThrowOnUnmappableChar podczas przekazywania tablicy zarządzanej, której elementy są anSI Chars lub LPSTRs do niezarządzanej bezpiecznej tablicy. Mapowanie najlepszego dopasowania jest zawsze włączone i nie jest zgłaszany żaden wyjątek. Należy pamiętać, że ta kombinacja może naruszyć bezpieczeństwo modelu zabezpieczeń.