如何打印PBYTE的内容?

问题描述

我知道PBYTEWindows Data Typesunsigned char*

我希望能够使用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,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] << " ";
}

...

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...