Marshal.PtrToStringAnsi メソッド

定義

マネージド Stringを割り当て、アンマネージド ANSI (Windows) または UTF-8 (unix の場合) 文字列のすべてまたは一部をコピーします。

オーバーロード

名前 説明
PtrToStringAnsi(IntPtr)

アンマネージド ANSI または UTF-8 文字列から最初の null 文字までのすべての文字をマネージド Stringにコピーし、各文字を UTF-16 に拡大します。

PtrToStringAnsi(IntPtr, Int32)

マネージド Stringを割り当て、アンマネージド ANSI 文字列または UTF-8 文字列から指定した数の文字をコピーして、各文字を UTF-16 に拡大します。

PtrToStringAnsi(IntPtr)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs

アンマネージド ANSI または UTF-8 文字列から最初の null 文字までのすべての文字をマネージド Stringにコピーし、各文字を UTF-16 に拡大します。

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

パラメーター

ptr
IntPtr

nativeint

アンマネージ文字列の最初の文字のアドレス。

返品

アンマネージド文字列のコピーを保持するマネージド文字列。 ptrnull場合、メソッドは null 文字列を返します。

属性

次の例では、 PtrToStringAnsi メソッドを使用して、アンマネージ char 配列からマネージド文字列を作成します。

using namespace System;
using namespace System::Runtime::InteropServices;

void main()
{
    // Create an unmanaged c string.
    const char * myString = "Hello managed world (from the unmanaged world)!";
    
    // Convert the c string to a managed String.
    String ^ myManagedString = Marshal::PtrToStringAnsi((IntPtr) (char *) myString);
    
    // Display the string to the console.
    Console::WriteLine(myManagedString);
}

注釈

PtrToStringAnsi は、カスタム マーシャリングや、マネージド コードとアンマネージド コードを混在する場合に便利です。 このメソッドはアンマネージ文字列の内容のコピーを作成するため、必要に応じて元の文字列を解放する必要があります。 このメソッドは、 Marshal.StringToCoTaskMemAnsi メソッドと Marshal.StringToHGlobalAnsi メソッドの逆の機能を提供します。

こちらもご覧ください

適用対象

PtrToStringAnsi(IntPtr, Int32)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs

マネージド Stringを割り当て、アンマネージド ANSI 文字列または UTF-8 文字列から指定した数の文字をコピーして、各文字を UTF-16 に拡大します。

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

パラメーター

ptr
IntPtr

nativeint

アンマネージ文字列の最初の文字のアドレス。

len
Int32

コピーする入力文字列のバイト数。

返品

ptr パラメーターの値がnullでない場合は、ネイティブ文字列のコピーを保持するマネージド文字列。それ以外の場合、このメソッドはnullを返します。

属性

例外

len が 0 未満です。

次の例では、 PtrToStringAnsi メソッドを使用して、アンマネージ配列からマネージド文字列char 作成します。

using namespace System;
using namespace System::Runtime::InteropServices;



void main()
{
    // Create an unmanaged c string.
    const char * myString = "Hello managed world (from the unmanaged world)!";

    // Convert the c string to a managed String.
    String ^ myManagedString = Marshal::PtrToStringAnsi((IntPtr) (char *) myString);

    // Display the string to the console.
    Console::WriteLine(myManagedString);
}

注釈

PtrToStringAnsi は、カスタム マーシャリングや、マネージド コードとアンマネージド コードを混在する場合に便利です。 このメソッドはアンマネージ文字列の内容のコピーを作成するため、必要に応じて元の文字列を解放する必要があります。 このメソッドは、 Marshal.StringToCoTaskMemAnsi メソッドと Marshal.StringToHGlobalAnsi メソッドの逆の機能を提供します。

こちらもご覧ください

適用対象