请原谅我的问题很简单,我不习惯使用 Windows 类型。
我有一个 LPBYTE 缓冲区,我希望将它的每个字节与另一个字节进行异或运算。
在 C++ 中获取缓冲区长度并遍历它的正确方法是什么?我正在尝试做类似的事情:
LPBYTE buf = *something*;
char key = 'X';
for(int i=0;i<len(buf);i++)
buf[i] = buf[i] ^ key;
非常感谢!
C(/C++) 中的 LPBYTE
缓冲区只是内存中某处的地址,因此您需要最好通过具有大小值以显式方式跟踪该缓冲区的长度。
例如
// use a struct instead to keep things together
struct
{
LPBYTE buffer;
size_t size;
} yourbuffer;
// init part
BYTE somewriteabledata[200];
yourbuffer.buffer = somewriteabledata;
yourbuffer.size = sizeof(somewriteabledata);
char key = 'X';
for(int i=0;i<yourbuffer.size;i++)
yourbuffer.buf[i] = yourbuffer.buf[i] ^ key;
我是一名优秀的程序员,十分优秀!