DllImportAttribute.ThrowOnUnmappableChar Feld
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Aktiviert bzw. deaktiviert das Auslösen einer Ausnahme bei einem nicht zuzuordnenden Unicode-Zeichen, das in das ANSI-Zeichen „?“ konvertiert wird.
public: bool ThrowOnUnmappableChar;
public bool ThrowOnUnmappableChar;
val mutable ThrowOnUnmappableChar : bool
Public ThrowOnUnmappableChar As Boolean
Feldwert
Beispiele
In einigen Fällen verwenden Visual Basic-Entwickler die DllImportAttribute , um eine DLL-Funktion in verwaltetem Code zu definieren, anstatt die Declare
-Anweisung zu verwenden. Das Festlegen des ThrowOnUnmappableChar Felds ist einer dieser Fälle. Im folgenden Beispiel wird gezeigt, wie Sie die strengste Zeichenzuordnungssicherheit auf eine Plattformaufrufmethode anwenden, indem Sie den ANSI-Zeichensatz angeben, das Zuordnungsverhalten am besten deaktivieren und eine Ausnahme für nicht zugeordnete Unicode-Zeichen auslösen.
[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
Hinweise
true
, um anzugeben, dass jedes Mal eine Ausnahme ausgelöst wird, wenn der Interop marshaler ein nicht verwendbares Zeichen konvertiert; false
, um anzugeben, dass das ThrowOnUnmappableChar Feld deaktiviert ist. Dieses Feld ist standardmäßig auf false
festgelegt.
Achtung
Bestimmte Unicode-Zeichen werden in gefährliche Zeichen konvertiert, z. B. der umgekehrte Schrägstrich "\", der versehentlich einen Pfad ändern kann. Wenn Sie das ThrowOnUnmappableChar Feld auf true
festlegen, können Sie dem Aufrufer das Vorhandensein eines nicht verwendbaren Zeichens signalisieren, indem Sie eine Ausnahme auslösen.
Achtung
Sie können die von den BestFitMapping Feldern und ThrowOnUnmappableChar bereitgestellten Standardwerte nicht ändern, wenn Sie ein verwaltetes Array übergeben, dessen Elemente ANSI-Chars oder LPSTRs sind, in ein nicht verwaltetes sicheres Array. Die am besten geeignete Zuordnung ist immer aktiviert, und es wird keine Ausnahme ausgelöst. Beachten Sie, dass diese Kombination Ihr Sicherheitsmodell gefährden kann.