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 oder deaktiviert das optimale Zuordnungsverhalten beim Konvertieren 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 die DllImportAttribute anstelle der Declare-Anweisung, um eine DLL-Funktion in verwaltetem Code zu definieren. Das Festlegen des BestFitMapping Felds ist einer dieser Fälle. Das folgende Beispiel zeigt, wie Sie die strengste Zeichenzuordnungssicherheit auf eine Plattformaufrufmethodendefinition anwenden, indem Sie den ANSI-Zeichensatz angeben, das beste Zuordnungsverhalten 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 truedas Verhalten der am besten geeigneten Zuordnung aktiviert ist. Andernfalls ist die Zuordnung für optimale Anpassungen deaktiviert. Das BestFitMapping Feld ist true standardmäßig vorhanden. Einstellungen für dieses Feld setzen alle Ebeneneinstellungen für das System.Runtime.InteropServices.BestFitMappingAttribute Attribut außer Kraft.
Vorsicht
Bestimmte Unicode-Zeichen werden in gefährliche Zeichen konvertiert, z. B. das umgekehrte Schrägstrichzeichen "\", das versehentlich einen Pfad ändern kann. Durch Festlegen des ThrowOnUnmappableChar Felds auf true" können Sie das Vorhandensein eines nicht verwendbaren Zeichens an den Aufrufer signalisieren, indem Sie eine Ausnahme auslösen.
Vorsicht
Sie können die von den BestFitMappingThrowOnUnmappableChar Feldern bereitgestellten Standardwerte nicht ändern, wenn Sie ein verwaltetes Array übergeben, dessen Elemente ANSI Chars oder LPSTRs sind, in ein nicht verwaltetes sicheres Array. Die optimale Zuordnung ist immer aktiviert, und es wird keine Ausnahme ausgelöst. Beachten Sie, dass diese Kombination Ihr Sicherheitsmodell kompromittieren kann.