共用方式為


Marshal.StringToCoTaskMemUni(String) 方法

定義

複製 Managed String 的內容到從 Unmanaged COM 工作配置器配置的記憶體區塊。

public:
 static IntPtr StringToCoTaskMemUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemUni (string s);
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

要複製的 Managed 字串。

傳回

IntPtr

nativeint

整數,表示配置給字串的記憶體區塊指標,如果 s 為 null 則為 0。

屬性

例外狀況

s 參數超過作業系統所允許的最大長度。

可用的記憶體不足。

備註

StringToCoTaskMemUni 適用於自定義封送處理,或在混合 Managed 和 Unmanaged 程式代碼時使用。 因為這個方法會配置字串所需的 Unmanaged 記憶體,所以一律呼叫 Marshal.FreeCoTaskMem來釋放記憶體。 這個方法提供的相反功能 Marshal.PtrToStringUni。 字串的字元會複製為 Unicode 字元。

此 API 反映 Unicode 的 Windows 定義,這是 UTF-16 2 位元組編碼。 在許多非 Windows 平臺上, wchar_t 數據類型為 4 位元組,而非 2 位元組。 請洽詢您的編譯程式以確認 wchar_t 是否可以使用或 char16_t 應改用。

適用於

另請參閱