CharSet Enumeration
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.
Bestimmt, welche marshallierten Zeichenfolgen von Zeichensatz verwendet werden sollen.
public enum class CharSet
public enum CharSet
[System.Serializable]
public enum CharSet
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CharSet
type CharSet =
[<System.Serializable>]
type CharSet =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CharSet =
Public Enum CharSet
- Vererbung
- Attribute
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| None | 1 | Dieser Wert ist veraltet und hat dasselbe Verhalten wie Ansi. |
| Ansi | 2 | Marshal-Zeichenfolgen als Zeichenfolgen mit mehreren Bytezeichen: Die Systemstandard-Windows (ANSI)-Codepage für Windows und UTF-8 unter Unix. |
| Unicode | 3 | Marshal-Zeichenfolgen als Unicode-2-Byte-Zeichenfolgen. |
| Auto | 4 | Automatisches Marshallen von Zeichenfolgen für das Zielbetriebssystem. Details finden Sie unter Charsets und Marshaling . Obwohl die Standardeinstellung für die Common Language Runtime lautet Auto, können Sprachen diese Standardeinstellung außer Kraft setzen. Standardmäßig markieren C# und Visual Basic alle Methoden und Typen als Ansi. |
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie Sie einen CharSet Enumerationswert angeben, wenn Sie die StructLayoutAttribute auf eine verwaltete Definition anwenden.
[StructLayout(LayoutKind::Sequential, CharSet=CharSet::Ansi)]
public ref struct MyPerson
{
public:
String^ first;
String^ last;
};
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct MyPerson
{
public String first;
public String last;
}
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> _
Public Structure MyPerson
Public first As String
Public last As String
End Structure
Hinweise
Da es mehrere nicht verwaltete Zeichenfolgentypen und nur einen verwalteten Zeichenfolgentyp gibt, müssen Sie einen Zeichensatz verwenden, um anzugeben, wie verwaltete Zeichenfolgen an nicht verwalteten Code gemarstet werden sollen. Diese Aufzählung, die Zeichensatzoptionen bereitstellt, wird von DllImportAttribute und verwendet StructLayoutAttribute. Eine detaillierte Beschreibung des Zeichenfolgenmarsing- und Namensabgleichsverhaltens, das dieser Enumeration zugeordnet ist, finden Sie unter Angeben eines Zeichensatzes.