Marshal.StringToHGlobalUni(String) メソッド

定義

マネージド String の内容をアンマネージド メモリにコピーします。

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

パラメーター

s
String

コピーされるマネージド文字列。

戻り値

IntPtr

s のコピー先となったアンマネージ メモリ内のアドレス。snull の場合は 0。

属性

例外

メソッドが十分なネイティブ ヒープ メモリを割り当てることができませんでした。

s パラメーターがオペレーティング システムで許可されている最大長を超えています。

注釈

StringToHGlobalUni は、カスタム マーシャリングや、マネージド コードとアンマネージド コードを混在する場合に使用する場合に便利です。 このメソッドは文字列に必要なアンマネージ メモリを割り当てるので、 を呼び出 FreeHGlobalして常にメモリを解放します。 このメソッドは、 の逆の機能を Marshal.PtrToStringUni提供します。

このメソッドは、埋め込まれた null 文字をコピーし、終端の null 文字を含みます。

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

適用対象

製品 バージョン
.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, 10
.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

こちらもご覧ください