CharSet 列挙型


マーシャリングされた文字列で使用する文字セットを指定します。Dictates which character set marshaled strings should use.

public enum class CharSet
public enum CharSet
type CharSet = 
Public Enum CharSet


Ansi 2

文字列をマルチバイト文字としてマーシャリングします。Windows システムの既定は Windows (ANSI) コード ページで Unix 既定は UTF-8 です。Marshal strings as multiple-byte character strings: the system default Windows (ANSI) code page on Windows, and UTF-8 on Unix.

Auto 4

対象オペレーティング システムに適するように、自動的に文字列をマーシャリングします。Automatically marshal strings appropriately for the target operating system. 詳細については、文字セットとマーシャリングに関するページを参照してください。See Charsets and marshaling for details. 共通言語ランタイムの既定値は Auto ですが、言語によってこの既定値がオーバーライドされることがあります。Although the common language runtime default is Auto, languages may override this default. たとえば、C# および Visual Basic の既定では、すべてのメソッドと型が Ansi としてマークされます。For example, by default C# and Visual Basic mark all methods and types as Ansi.

None 1

この値は今後使用しません。動作は Ansi と同じです。This value is obsolete and has the same behavior as Ansi.

Unicode 3

文字列を Unicode 2 バイト文字の文字列としてマーシャリングします。Marshal strings as Unicode 2-byte character strings.

をマネージ定義CharSet StructLayoutAttributeに適用するときに列挙値を指定する方法を次のコード例に示します。The following code example shows how to specify a CharSet enumeration value when applying the StructLayoutAttribute to a managed definition.

[StructLayout(LayoutKind::Sequential, CharSet=CharSet::Ansi)]
public ref struct MyPerson
    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


アンマネージ文字列型とマネージ文字列型は複数存在するため、マネージ文字列をアンマネージコードにマーシャリングする方法を指定するには、文字セットを使用する必要があります。Because there are several unmanaged string types and only one managed string type, you must use a character set to specify how managed strings should be marshaled to unmanaged code. この列挙体は、文字セットオプションを提供するものDllImportAttributeStructLayoutAttribute、およびで使用されます。This enumeration, which provides character set options, is used by DllImportAttribute and StructLayoutAttribute. この列挙体に関連付けられている文字列のマーシャリングと名前の一致の動作の詳細については、「文字セットの指定」を参照してください。For a detailed description of the string marshaling and name matching behavior associated with this enumeration, see Specifying a Character Set.