次の方法で共有


CharSet 列挙型

定義

マーシャリングされる文字列に使用する文字セットを指定します。

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
継承
属性

フィールド

Ansi 2

文字列をマルチバイト文字としてマーシャリングします。Windows システムの既定は Windows (ANSI) コード ページで Unix 既定は UTF-8 です。

Auto 4

対象オペレーティング システムに適するように、自動的に文字列をマーシャリングします。 詳細については、文字セットとマーシャリングに関するページを参照してください。 共通言語ランタイムの既定値は Auto ですが、言語によってこの既定値がオーバーライドされることがあります。 たとえば、C# および Visual Basic の既定では、すべてのメソッドと型が Ansi としてマークされます。

None 1

この値は今後使用しません。動作は Ansi と同じです。

Unicode 3

文字列を Unicode 2 バイト文字の文字列としてマーシャリングします。

次のコード例は、 をマネージド定義に適用するときに列挙値をStructLayoutAttribute指定CharSetする方法を示しています。

[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

注釈

アンマネージド文字列型は複数あり、マネージド文字列型は 1 つだけであるため、マネージド文字列をアンマネージド コードにマーシャリングする方法を指定するには、文字セットを使用する必要があります。 文字セット オプションを提供するこの列挙体は、 と StructLayoutAttributeDllImportAttribute使用されます。 この列挙に関連付けられている文字列マーシャリングと名前の一致動作の詳細については、「 文字セットの指定」を参照してください。

適用対象

こちらもご覧ください