DllImportAttribute.BestFitMapping 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 Verhalten der optimalen Zuordnung bei der Konvertierung von Unicode-Zeichen in ANSI-Zeichen.
public: bool BestFitMapping;
public bool BestFitMapping;
val mutable BestFitMapping : bool
Public BestFitMapping As Boolean
Feldwert
Beispiele
In einigen Fällen verwenden Visual Basic-Entwickler anstelle der DllImportAttributeDeclare
-Anweisung, um eine DLL-Funktion in verwaltetem Code zu definieren. Das Festlegen des BestFitMapping 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
Wenn true
das Verhalten für die beste Zuordnung aktiviert ist, ist andernfalls die Zuordnung am besten deaktiviert. Das BestFitMapping Feld ist true
standardmäßig. Einstellungen für dieses Feld überschreiben die beliebigen Ebeneneinstellungen für das System.Runtime.InteropServices.BestFitMappingAttribute Attribut.
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.