Marshal.PtrToStringAnsi メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
マネージド 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
アンマネージド 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
アンマネージ文字列の最初の文字のアドレス。
戻り値
アンマネージド文字列のコピーを保持するマネージド文字列。
ptr
が null
の場合、このメソッドは 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.StringToHGlobalAnsi メソッドの逆のMarshal.StringToCoTaskMemAnsi機能を提供します。
こちらもご覧ください
適用対象
PtrToStringAnsi(IntPtr, Int32)
- ソース:
- 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.StringToHGlobalAnsi メソッドの逆のMarshal.StringToCoTaskMemAnsi機能を提供します。
こちらもご覧ください
適用対象
.NET