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 truejest 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ń.