DllImportAttribute.BestFitMapping Feld

Definition

Aktiviert bzw. deaktiviert das Verhalten der optimalen Zuordnung bei der Konvertierung von Unicode-Zeichen in ANSI-Zeichen.Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.

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

Feldwert

Beispiele

In einigen Fällen verwenden DllImportAttributeVisual Basic Entwickler anstelle Declare der-Anweisung, um eine DLL-Funktion in verwaltetem Code zu definieren.In some cases, Visual Basic developers use the DllImportAttribute, instead of the Declare statement, to define a DLL function in managed code. Das Festlegen BestFitMapping des Felds ist einer dieser Fälle.Setting the BestFitMapping field is one of those cases. Im folgenden Beispiel wird gezeigt, wie die strikte Sicherheit der Zeichen Zuordnung auf eine Platt Form Aufruf Methoden Definitionen angewendet wird, indem der ANSI-Zeichensatz angegeben wird, das Verhalten der optimalen Anpassung der Zuordnung deaktiviert und eine Ausnahme für nicht zugeordnete Unicode-Zeichen ausgelöst wird.The following example shows how to apply the strictest character mapping security to a platform invoke method definitions by specifying the ANSI character set, disabling best fit mapping behavior, and throwing an exception on unmapped Unicode characters.

[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

Gibt truean, dass das Verhalten mit der optimalen Anpassung aktiviert ist, andernfalls ist die Zuordnung mit der optimalen Anpassung deaktiviert.If true, best-fit mapping behavior is enabled; otherwise, best-fit mapping is disabled. Das BestFitMapping Feld ist true standardmäßig.The BestFitMapping field is true by default. Die Einstellungen für dieses Feld überschreiben alle Ebenen-Einstellungen System.Runtime.InteropServices.BestFitMappingAttribute für das Attribut.Settings for this field override the any level settings for the System.Runtime.InteropServices.BestFitMappingAttribute attribute.

Der Common Language Runtime konvertiert alle verwalteten Unicode-Zeichen in ANSI-Zeichen, die an eine nicht verwaltete Methode weitergeleitet werden, die unter Windows 98 oder Windows Me ausgeführt wird.The common language runtime converts to ANSI characters any managed Unicode characters passed to an unmanaged method executing on Windows 98 or Windows Me. Die Zuordnung mit dem besten Zeichen ermöglicht dem Interop-Mars Haller, ein schließende Zeichen bereitzustellen, wenn keine genaue Übereinstimmung vorhanden ist.Best-fit mapping enables the interop marshaler to provide a close-matching character when no exact match exists. Der Mars Haller konvertiert z. b. das Unicode-Copyright Zeichen für nicht verwaltete Methoden, die ANSI-Zeichen akzeptieren, in "c".For example, the marshaler converts the Unicode copyright character to 'c' for unmanaged methods that accept ANSI characters. Bei manchen Zeichen fehlt eine Darstellung mit der optimalen Anpassung. Diese Zeichen werden als nicht mappbar bezeichnet.Some characters lack a best-fit representation; these characters are called unmappable. Nicht mappbare Zeichen werden in der Regel in den Standardwert "?" konvertiert. ANSI-Zeichen.Unmappable characters are usually converted to the default '?' ANSI character.

Achtung

Bestimmte Unicode-Zeichen werden in gefährliche Zeichen (z. b. den umgekehrten\Schrägstrich ' ') konvertiert, wodurch ein Pfad versehentlich geändert werden kann.Certain Unicode characters are converted to dangerous characters, such as the backslash '\' character, which can inadvertently change a path. Wenn Sie das ThrowOnUnmappableChar -Feld trueauf festlegen, können Sie dem Aufrufer das vorhanden sein eines nicht mappbaren Zeichens signalisieren, indem Sie eine Ausnahme auslösen.By setting the ThrowOnUnmappableChar field to true, you can signal the presence of an unmappable character to the caller by throwing an exception.

Achtung

Sie können die Standardwerte, die von den BestFitMapping Feldern ThrowOnUnmappableChar und bereitgestellt werden, nicht ändern, wenn Sie ein verwaltetes Array, dessen Elemente ANSI-Zeichen oder lpstrans sind, in ein nicht verwaltetes sicheres Array übergebenYou cannot change the default values provided by the BestFitMapping and ThrowOnUnmappableChar fields when passing a managed array whose elements are ANSI Chars or LPSTRs to an unmanaged safe array. Die Zuordnung mit der optimalen Anpassung ist immer aktiviert, und es wird keine Ausnahme ausgelöst.Best-fit mapping is always enabled and no exception is thrown. Beachten Sie, dass diese Kombination Ihr Sicherheitsmodell gefährden kann.Be aware that this combination can compromise your security model.

Gilt für:

Siehe auch