Freigeben über


DllImportAttribute.BestFitMapping Feld

Definition

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 truedas 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 truefestlegen, 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.

Gilt für:

Weitere Informationen