Marshal.StringToHGlobalUni(String) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將 Managed String 的內容複製到 Unmanaged 記憶體。
public:
static IntPtr StringToHGlobalUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToHGlobalUni (string s);
public static IntPtr StringToHGlobalUni (string? s);
public static IntPtr StringToHGlobalUni (string s);
[<System.Security.SecurityCritical>]
static member StringToHGlobalUni : string -> nativeint
static member StringToHGlobalUni : string -> nativeint
Public Shared Function StringToHGlobalUni (s As String) As IntPtr
參數
- s
- String
要複製的 Managed 字串。
傳回
IntPtr
nativeint
Unmanaged 記憶體中複製 s
的目的位址,如果 s
為 null
則為 0。
- 屬性
例外狀況
方法無法配置足夠的原生堆積記憶體。
s
參數超過作業系統所允許的最大長度。
備註
StringToHGlobalUni 適用於自定義封送處理,或在混合 Managed 和 Unmanaged 程式代碼時使用。 因為這個方法會配置字串所需的 Unmanaged 記憶體,所以一律呼叫 FreeHGlobal來釋放記憶體。 這個方法提供的相反功能 Marshal.PtrToStringUni。
這個方法會複製內嵌的 Null 字元,並包含終止的 Null 字元。
此 API 反映 Unicode 的 Windows 定義,這是 UTF-16 2 位元組編碼。 在許多非 Windows 平臺上, wchar_t
數據類型為 4 位元組,而非 2 位元組。 請洽詢您的編譯程式以確認 wchar_t
是否可以使用或 char16_t
應改用。