c++ - 如何在 C++ 中遍历 LPBYTE 的每个字节

标签 c++ arrays pointers loops lpbyte

请原谅我的问题很简单,我不习惯使用 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;

关于c++ - 如何在 C++ 中遍历 LPBYTE 的每个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695908/

相关文章:

c - C中的结构查找大于某个变量的元素

c++ - 返回 vector 与使用 vector 的参数返回它

c++ - 递归函数,用于查找输入数组中的数字子集是否可以加起来达到给定的目标值

javascript - getjson 数组 jquery 未定义

pointers - 如果我将成员函数指针放在指针实例范围之外,是否有任何问题

c - 指向端口寄存器中位的指针

c++ - 在值 C++ 中搜索设置/取消设置位组合

c++:从一个 vector 中删除另一个 vector 中的元素

java - 打印到达数组末尾所需的最小跳转数序列

android - 尝试将 mutableListOf<String> 存储到 SharedPreferences 但无法设置默认值