DllImportAttribute.ThrowOnUnmappableChar Pole

Definicja

Włącza lub wyłącza zgłaszanie wyjątku dla nieaplikowanego znaku Unicode konwertowanego na znak ANSI "?".

public: bool ThrowOnUnmappableChar;
public bool ThrowOnUnmappableChar;
val mutable ThrowOnUnmappableChar : bool
Public ThrowOnUnmappableChar As Boolean 

Wartość pola

Przykłady

W niektórych przypadkach deweloperzy języka Visual Basic używają DllImportAttribute elementu , aby zdefiniować funkcję DLL w kodzie zarządzanym, zamiast używać instrukcji Declare . ThrowOnUnmappableChar 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

true aby wskazać, że wyjątek jest zgłaszany za każdym razem, gdy marshaler międzyoperacyjny konwertuje niestosowalny znak; false , aby wskazać, że ThrowOnUnmappableChar pole jest wyłączone. To pole jest false domyślnie.

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

Dotyczy

Zobacz też