次の方法で共有


IDebugDataSpaces4::ReadMultiByteStringVirtualWide メソッド (dbgeng.h)

ReadMultiByteStringVirtualWide メソッドは、null で終わるマルチバイト文字列をターゲットから読み取り、Unicode に変換します。

構文

HRESULT ReadMultiByteStringVirtualWide(
  [in]            ULONG64 Offset,
  [in]            ULONG   MaxBytes,
  [in]            ULONG   CodePage,
  [out, optional] PWSTR   Buffer,
  [in]            ULONG   BufferSize,
  [out, optional] PULONG  StringBytes
);

パラメーター

[in] Offset

プロセスの仮想アドレス空間内の文字列の場所を指定します。

[in] MaxBytes

ターゲットから読み取る最大バイト数を指定します。

[in] CodePage

ターゲットから読み取ったマルチバイト文字列を Unicode 文字列に変換するために使用するコード ページを指定します。 たとえば、CP_ACPは ANSI コード ページです。

[out, optional] Buffer

ターゲットから文字列を受け取ります。 BufferNULL の場合、この情報は返されません。

[in] BufferSize

バッファー バッファーのサイズを文字単位で指定します。

[out, optional] StringBytes

ターゲット内の文字列のサイズをバイト単位で受け取ります。 StringBytesNULL の場合、この情報は返されません。

戻り値

リターン コード 説明
S_OK
メソッドは正常に実行されました。
S_FALSE
メソッドが正常に実行されませんでした。
E_INVALIDARG
ターゲットから MaxBytes を読み取った後に null ターミネータが見つかりませんでした。
 

このメソッドは、エラー値を返すこともできます。 詳細については、「 戻り値 」を参照してください。

注釈

エンジンはターゲットから MaxBytes まで読み取り、null ターミネータを探します。 文字列に BufferSize 文字を超える文字が含まれている場合、文字列は Buffer に収まるように切り捨てられます。

S_OKが返された場合でも、バッファーが文字列を格納するのに十分な大きさになっていない可能性があることに注意してください。 この場合、文字列は Buffer に収まるように切り捨てられます。 Buffer に少なくとも 1 文字のスペースがある場合、切り捨てられた文字列は null で終わる。 呼び出しが戻った後、チェックして、*StringBytes が BufferSize より大きいかどうかを確認します。

要件

要件
対象プラットフォーム デスクトップ
Header dbgeng.h (Dbgeng.h、Winnls.h を含む)

こちらもご覧ください

IDebugDataSpaces4

ReadMultiByteStringVirtual

ReadUnicodeStringVirtualWide