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 至少有一个字符的空间,则截断的字符串以 null 结尾。 调用返回后,检查查看 *StringBytes 是否大于 BufferSize。

要求

要求
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h、Winnls.h)

另请参阅

IDebugDataSpaces4

ReadMultiByteStringVirtual

ReadUnicodeStringVirtualWide