Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
MSDN Library

Marshal.PtrToStringAuto Method (IntPtr)

Allocates a managed String and copies all characters up to the first null character from a string stored in unmanaged memory into it.

Namespace:  System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

public static string PtrToStringAuto(
	IntPtr ptr
)

Parameters

ptr
Type: System.IntPtr

For Unicode platforms, the address of the first Unicode character.

-or-

For ANSI plaforms, the address of the first ANSI character.

Return Value

Type: System.String
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.

If the current platform is Unicode, each ANSI character is widened to a Unicode character and this method calls PtrToStringUni. Otherwise, this method calls PtrToStringAnsi.

PtrToStringAuto 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. PtrToStringAuto provides the opposite functionality of the Marshal.StringToCoTaskMemAuto and Marshal.StringToHGlobalAuto methods.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

  • SecurityCriticalAttribute 

    requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Show:
© 2015 Microsoft