Marshal.PtrToStringUni メソッド

定義

マネージド String を割り当て、アンマネージド Unicode 文字列のすべてまたは一部をコピーします。

オーバーロード

PtrToStringUni(IntPtr)

マネージド String を割り当て、アンマネージド Unicode 文字列から最初の null 文字まですべての文字をコピーします。

PtrToStringUni(IntPtr, Int32)

マネージド String を割り当て、アンマネージド Unicode 文字列から指定した数の文字をコピーします。

PtrToStringUni(IntPtr)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs

マネージド String を割り当て、アンマネージド Unicode 文字列から最初の null 文字まですべての文字をコピーします。

C#
[System.Security.SecurityCritical]
public static string PtrToStringUni (IntPtr ptr);
C#
public static string? PtrToStringUni (IntPtr ptr);
C#
public static string PtrToStringUni (IntPtr ptr);

パラメーター

ptr
IntPtr

アンマネージ文字列の最初の文字のアドレス。

戻り値

ptr パラメーターの値が nullされていない場合にアンマネージ文字列のコピーを保持するマネージド文字列。それ以外の場合、このメソッドは nullを返します。

属性

注釈

PtrToStringUni は、カスタム マーシャリングや、マネージド コードとアンマネージド コードを混在するときに使用する場合に便利です。 このメソッドはアンマネージ文字列の内容のコピーを作成するため、必要に応じて元の文字列を解放する必要があります。 このメソッドは、Marshal.StringToCoTaskMemUni メソッドと Marshal.StringToHGlobalUni メソッドの逆の機能を提供します。

この API には、UTF-16 2 バイト エンコードである Unicode の Windows 定義が反映されています。 Windows 以外の多くのプラットフォームでは、wchar_t データ型は 2 バイトではなく 4 バイトです。 コンパイラに問い合わせて、wchar_t を使用できるかどうかを確認するか、代わりに char16_t 使用する必要があるかどうかを確認します。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

PtrToStringUni(IntPtr, Int32)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs

マネージド String を割り当て、アンマネージド Unicode 文字列から指定した数の文字をコピーします。

C#
[System.Security.SecurityCritical]
public static string PtrToStringUni (IntPtr ptr, int len);
C#
public static string PtrToStringUni (IntPtr ptr, int len);

パラメーター

ptr
IntPtr

アンマネージ文字列の最初の文字のアドレス。

len
Int32

コピーする Unicode 文字の数。

戻り値

ptr パラメーターの値が nullされていない場合にアンマネージ文字列のコピーを保持するマネージド文字列。それ以外の場合、このメソッドは nullを返します。

属性

注釈

PtrToStringUni は、カスタム マーシャリングや、マネージド コードとアンマネージド コードを混在する場合に便利です。 このメソッドはアンマネージ文字列の内容のコピーを作成するため、必要に応じて元の文字列を解放する必要があります。 このメソッドは、Marshal.StringToCoTaskMemUni メソッドと Marshal.StringToHGlobalUni メソッドの逆の機能を提供します。

この API には、UTF-16 2 バイト エンコードである Unicode の Windows 定義が反映されています。 Windows 以外の多くのプラットフォームでは、wchar_t データ型は 2 バイトではなく 4 バイトです。 コンパイラに問い合わせて、wchar_t を使用できるかどうかを確認するか、代わりに char16_t 使用する必要があるかどうかを確認します。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0