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
从目标接收字符串。 如果 Buffer 为 NULL,则不返回此信息。
[in] BufferSize
指定 缓冲区 的大小(以字符为单位)。
[out, optional] StringBytes
接收目标中字符串的大小(以字节为单位)。 如果 StringBytes 为 NULL,则不返回此信息。
返回值
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
方法未成功。 |
|
从目标读取 MaxBytes 后找不到 null 终止符。 |
此方法还可以返回错误值。 有关更多详细信息 ,请参阅返回值 。
注解
引擎将从目标中读取最大 MaxBytes ,以查找 null 终止符。 如果字符串包含的字符数超过 BufferSize ,则字符串将被截断以适合 Buffer。
请注意,即使返回S_OK,缓冲区可能不够大,无法存储字符串。 在这种情况下,字符串将被截断以适合 Buffer。 如果 Buffer 至少有一个字符的空间,则截断的字符串以 null 结尾。 调用返回后,检查查看 *StringBytes 是否大于 BufferSize。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h、Winnls.h) |