Allocates a managed string and copies a specified number of characters from an unmanaged Unicode string into it.
![]()
A managed string that holds a copy of the unmanaged string if the value of the ptr parameter is not null; otherwise, this method returns null.
Marshal.PtrToStringUni(IntPtr, int) is useful for custom marshaling or when mixing managed and unmanaged code. Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. This method provides the opposite functionality of the Marshal.StringToCoTaskMemUni(string) and Marshal.StringToHGlobalUni(string) methods.