Marshal.StringToCoTaskMemUni(String) メソッド

定義

マネージド String の内容を、アンマネージ COM タスク アロケーターから割り当てられたメモリ ブロックにコピーします。

public:
 static IntPtr StringToCoTaskMemUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemUni(string s);
public static IntPtr StringToCoTaskMemUni(string s);
[<System.Security.SecurityCritical>]
static member StringToCoTaskMemUni : string -> nativeint
static member StringToCoTaskMemUni : string -> nativeint
Public Shared Function StringToCoTaskMemUni (s As String) As IntPtr

パラメーター

s
String

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

返品

IntPtr

nativeint

文字列に割り当てられたメモリ ブロックへのポインターを表す整数。s が null場合は 0。

属性

例外

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

使用可能なメモリが不足しています。

注釈

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

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

適用対象

こちらもご覧ください