DllImportAttribute.ThrowOnUnmappableChar DllImportAttribute.ThrowOnUnmappableChar DllImportAttribute.ThrowOnUnmappableChar DllImportAttribute.ThrowOnUnmappableChar Field

Definition

Aktiviert bzw. deaktiviert das Auslösen einer Ausnahme bei einem nicht zuzuordnenden Unicode-Zeichen, das in das ANSI-Zeichen „?“ konvertiert wird.Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.

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

Feldwert

Beispiele

In einigen Fällen verwenden DllImportAttribute Visual Basic Entwickler zum Definieren einer DLL-Funktion in verwaltetem Code anstelle der Declare -Anweisung.In some cases, Visual Basic developers use the DllImportAttribute to define a DLL function in managed code, instead of using the Declare statement. Das Festlegen ThrowOnUnmappableChar des Felds ist einer dieser Fälle.Setting the ThrowOnUnmappableChar 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

true, um anzugeben, dass eine Ausnahme immer ausgelöst wird, wenn der Interop-Mars Haller ein nicht mappbares Zeichen konvertiert. , um anzugeben, ThrowOnUnmappableChar dass das Feld deaktiviert ist. falsetrue to indicate that an exception is thrown each time the interop marshaler converts an unmappable character; false to indicate that the ThrowOnUnmappableChar field is disabled. Dieses Feld ist false standardmäßig.This field is false by default.

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