问题描述
我知道PBYTE
是Windows Data Types的unsigned 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] << " ";
}
...