Marshal.PtrToStringUni 方法

定义

分配托管 String 并向其复制所有或部分非托管 Unicode 字符串。

重载

PtrToStringUni(IntPtr)

分配托管 String,并从非托管 Unicode 字符串向其复制第一个空字符之前的所有字符。

PtrToStringUni(IntPtr, Int32)

分配托管 String,并从非托的 Unicode 字符串向其复制指定数目的字符。

PtrToStringUni(IntPtr)

分配托管 String,并从非托管 Unicode 字符串向其复制第一个空字符之前的所有字符。

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

参数

ptr
IntPtr

nativeint

非托管字符串的第一个字符的地址。

返回

String

如果 ptr 参数的值不是 null;则为具有非托管字符串副本的托管字符串;否则此方法将返回 null

属性

注解

PtrToStringUni 对于自定义封送处理或在混合托管和非托管代码时使用非常有用。 由于此方法创建非托管字符串内容的副本,因此必须根据需要释放原始字符串。 此方法提供与方法相反的功能Marshal.StringToCoTaskMemUniMarshal.StringToHGlobalUni

此 API 反映了 Unicode 的 Windows 定义,它是 UTF-16 2 字节编码。 在许多非 Windows 平台上, wchar_t 数据类型为 4 字节,而不是 2 字节。 请查阅编译器以确认是否可以 wchar_t 使用或 char16_t 应改用。

另请参阅

适用于

PtrToStringUni(IntPtr, Int32)

分配托管 String,并从非托的 Unicode 字符串向其复制指定数目的字符。

public:
 static System::String ^ PtrToStringUni(IntPtr ptr, int len);
[System.Security.SecurityCritical]
public static string PtrToStringUni (IntPtr ptr, int len);
public static string PtrToStringUni (IntPtr ptr, int len);
[<System.Security.SecurityCritical>]
static member PtrToStringUni : nativeint * int -> string
static member PtrToStringUni : nativeint * int -> string
Public Shared Function PtrToStringUni (ptr As IntPtr, len As Integer) As String

参数

ptr
IntPtr

nativeint

非托管字符串的第一个字符的地址。

len
Int32

要复制的 Unicode 字符数。

返回

String

如果 ptr 参数的值不是 null;则为具有非托管字符串副本的托管字符串;否则此方法将返回 null

属性

注解

PtrToStringUni 对于自定义封送处理或在混合托管和非托管代码时非常有用。 由于此方法创建非托管字符串内容的副本,因此必须根据需要释放原始字符串。 此方法提供与Marshal.StringToHGlobalUni方法相反的功能Marshal.StringToCoTaskMemUni

此 API 反映了 Unicode 的 Windows 定义,该定义是 UTF-16 2 字节编码。 在许多非 Windows 平台上, wchar_t 数据类型为 4 字节,而不是 2 字节。 请查阅编译器以确认是否可以 wchar_t 使用或 char16_t 应改用。

另请参阅

适用于