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.
Gibt an, welcher Zeichensatz von gemarshallten Zeichenfolgen verwendet werden soll.
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
Ansi | 2 | Marshallt Zeichenfolgen als Mehrfachbyte-Zeichenfolgen: Systemstandardeinstellung Windows-Codeseite (ANSI) unter Windows und UTF-8 unter Unix. |
Auto | 4 | Marshallt Zeichenfolgen automatisch entsprechend dem Zielbetriebssystem. Weitere Informationen finden Sie unter Zeichensätze und Marshalling. Obwohl der Common Language Runtime-Standard Auto ist, überschreiben Sprachen möglicherweise diesen Standard. Beispielsweise markieren C# und Visual Basic standardmäßig alle Methoden und Typen als Ansi. |
None | 1 | Dies ist ein veralteter Wert, der dasselbe Verhalten wie Ansi aufweist. |
Unicode | 3 | Marshallt Zeichenfolgen als 2-Byte-Unicode-Zeichenfolgen. |
Beispiele
Das folgende Codebeispiel zeigt, wie sie einen CharSet Enumerationswert angeben, wenn sie auf StructLayoutAttribute eine verwaltete Definition angewendet wird.
[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 in nicht verwalteten Code gemarshallt werden sollen. Diese Enumeration, die Zeichensatzoptionen bereitstellt, wird von DllImportAttribute und StructLayoutAttributeverwendet. Eine ausführliche Beschreibung des Zeichenfolgenmarshallings und des Namensabgleichsverhaltens, das dieser Enumeration zugeordnet ist, finden Sie unter Angeben eines Zeichensatzes.