c++ - 在 C++ 中,如何正确地将 BYTE 类型存储在变量中?
问题描述
如果这很明显或已在其他地方得到回答,请提前道歉。我已经搜索了几个小时,但由于我对 C++ 的缺乏经验,我很可能缺乏适当的词汇来形成适当的搜索词。
我遇到的问题出现在使用此代码示例的上下文中,该示例列出了特定运行进程使用的所有模块。
我正在努力寻找一种将以下代码行产生的输出存储在变量中的方法:
_tprintf( TEXT("\n base address = 0x%08X"), (DWORD) me32.modBaseAddr );
从此处的 Microsoft 文档中,“me32.modBaseAddr”看起来是指向 BYTE 类型变量的指针。上面的代码非常漂亮地将 me32.modBaseAddr 中保存的正确十六进制地址打印到控制台中。
我想要做的是将 me32.modBaseAddr 存储到一个变量中,然后可以将其传递给 std::ofstream (我想将它写入一个文件)。
我确信我无法理解一些基本的东西,所以即使有人甚至可以为我指出正确的方向,我需要学习的内容也会非常有用。
谢谢!!
解决方案
该modBaseAddr
成员基本上是指向元素数组的第一个元素的指针modBaseSize
。每个元素都是一个BYTE
。
因此,要将所有原始二进制数据写入流(以二进制模式打开),您可以执行例如
my_stream.write(reinterpret_cast<char*>(me32.modBaseAddr), me32.modBaseSize);
推荐阅读
- angular - 无法在 AOT 模式下动态生成的 Angular 模块中的动态生成组件的模板中使用异步管道
- python - Google Admin SDK:如何使用服务帐户电子邮件而不是特权用户的电子邮件来检索 G Suite 日志?
- material-table - 是否可以在材料表中的表格上设置固定宽度?
- php - 使用 UTF-16 十进制 php 打印表情符号
- mysql - 连接 Django Amazon Lightsail Mysql
- go - Go 如何进行系统调用?
- express - 如何使用 pug 从嵌套对象中提取数据
- maven - 在哪里可以找到使用 gradle 构建的工件
- c# - 解码为 MemoryStream 的 XML 附件不起作用
- javascript - html 5 验证不适用于谷歌隐形 recaptcha