Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aktiviert bzw. deaktiviert das Auslösen einer Ausnahme bei einem nicht zuzuordnenden Unicode-Zeichen, das in das ANSI-Zeichen '?' konvertiert wird.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public ThrowOnUnmappableChar As Boolean
'Usage
Dim instance As DllImportAttribute
Dim value As Boolean
value = instance.ThrowOnUnmappableChar
instance.ThrowOnUnmappableChar = value
public bool ThrowOnUnmappableChar
public:
bool ThrowOnUnmappableChar
public boolean ThrowOnUnmappableChar
public var ThrowOnUnmappableChar : boolean
Hinweise
true gibt an, dass immer dann eine Ausnahme ausgelöst wird, wenn der Interop-Marshaller ein nicht zuzuordnendes Zeichen konvertiert. false gibt an, dass das ThrowOnUnmappableChar-Feld deaktiviert ist. Dieses Feld ist in der Standardeinstellung false.
Die Common Language Runtime konvertiert alle verwalteten Unicode-Zeichen in ANSI-Zeichen, die an eine unter Windows 98 oder Windows Me ausgeführte, nicht verwaltete Methode übergeben werden. Die optimierte Zuordnung ermöglicht dem Interop-Marshalling die Bereitstellung eines nahezu entsprechenden Zeichens, wenn keine genaue Entsprechung vorhanden ist. Bei nicht verwalteten Methoden, die ANSI-Zeichen akzeptieren, konvertiert der Marshaller beispielsweise das Copyrightzeichen aus Unicode in den Buchstaben 'c'. Für einige Zeichen ist keine optimale Darstellung verfügbar. Diese Zeichen sind Zeichen, die nicht zugeordnet werden können. Zeichen, die nicht zugeordnet werden können, werden normalerweise in das ANSI-Standardzeichen '?' konvertiert.
Warnung
Bestimmte Unicode-Zeichen werden in gefährliche Zeichen konvertiert, beispielsweise den umgekehrten Schrägstrich '\', durch den ein Pfad unwiderruflich geändert werden kann. Wenn das ThrowOnUnmappableChar-Feld auf true festgelegt wird, können Sie den Aufrufer durch Auslösen einer Ausnahme über das Auftreten eines nicht zuzuordnenden Zeichens informieren.
Warnung
Die vom BestFitMapping-Feld und vom ThrowOnUnmappableChar-Feld bereitgestellten Standardwerte können nicht geändert werden, wenn ein verwaltetes Array, dessen Elemente ANSI-Zeichen oder LPSTRs sind, an ein nicht verwaltetes sicheres Array übergeben wird. Die optimale Zuordnung ist immer aktiviert, und es wird keine Ausnahme ausgelöst. Beachten Sie, dass diese Kombination Ihr Sicherheitsmodell gefährden kann.
Beispiel
In einigen Fällen verwenden Visual Basic-Entwickler DllImportAttribute anstelle der Declare-Anweisung, um eine DLL-Funktion in verwaltetem Code zu definieren. Ein solcher Fall ist beim Festlegen des ThrowOnUnmappableChar-Felds gegeben. Im folgenden Beispiel wird veranschaulicht, wie die strikteste Sicherheit bei der Zeichenzuordnung auf Plattformaufruf-Methodendefinitionen angewendet wird, indem der ANSI-Zeichensatz festgelegt, das optimale Zuordnungsverhalten deaktiviert und bei nicht zugeordneten Unicode-Zeichen eine Ausnahme ausgelöst wird.
<DllImport("My.dll", CharSet := CharSet.Ansi, _
BestfitMapping := False _
ThrowOnUnmappableChar := True)>
[DllImport("My.dll", CharSet = CharSet.Ansi,
BestfitMapping = false
ThrowOnUnmappableChar = true)]
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1
Siehe auch
Referenz
DllImportAttribute-Klasse
DllImportAttribute-Member
System.Runtime.InteropServices-Namespace
CharSet
BestFitMapping