c++ - 如何打印出 PBYTE 的内容?
问题描述
我的理解PBYTE
是unsigned char*
来自Windows Data Types。
我希望能够使用printf()
或打印所有内容cout
:
PBYTE buffer;
ULONG buffersize = NULL;
serializeData(data, buffer, buffersize);
//this function serializes "data" and stores the data in buffer and updates bufferSize)..
你能帮我理解如何用 C++ 打印这个吗?
解决方案
如果要打印指向的内存地址,buffer
则可以这样做:
PBYTE buffer;
ULONG buffersize = 0;
serializeData(data, buffer, buffersize);
//this function serializes "data" and stores the data in buffer and updates bufferSize)...
printf("%p", buffer);
or
std::cout << (void*)buffer;
...
但是,如果要打印缓冲区的内容,则需要遍历缓冲区并分别打印出来BYTE
,例如:
PBYTE buffer;
ULONG buffersize = 0;
serializeData(data, buffer, buffersize);
//this function serializes "data" and stores the data in buffer and updates bufferSize)...
for (DWORD i = 0; i < buffersize; ++i)
{
printf("%02x ", buffer[i]);
or
std::cout << std::hex << std::setw(2) << std::setfill('0') << (unsigned int)buffer[i] << " ";
}
...
推荐阅读
- html - 角度图像源文件更改触发绑定
- sql - SQL Server 2016 服务器事件通知不起作用
- oracle - 限制用户可以使用 oracle 报告生成多少表单/报告
- java - 找到未修补的 iText,无法使用字形渲染
- javascript - 如何在 Safari 和 Epiphany 中允许 inline-javascript?
- javascript - 如何在 Raspberry PI 上流畅运行 HTML、CSS 和 JS 视频
- vaadin - Vaadin Web 应用程序中的分离事件没有被调用
- dart - 颤振“严格”模式?
- javascript - 如何在 JavaScript 中直接实例化 WebAssembly 模块
- php - 启用阿拉伯文和英文字母(正则表达式 - PHP)