gpt4 book ai didi

c++ - 如何将 int 转换为 LPBYTE

转载 作者:行者123 更新时间:2023-11-28 02:30:41 24 4
gpt4 key购买 nike

我需要将 int 值转换为 LPBYTE。当我查看定义时,显示如下。我不确定 far 是什么意思。

typedef unsigned char       BYTE;
typedef BYTE far *LPBYTE;
  1. “远”是什么意思
  2. 如何将 int 值转换为 LPBYTE

编辑

foo(LPBYTE x){
}

int main()
{
int y = koo();
foo(y); // how to cast here
return 0;
}

实际代码

 int iVal = 0;
LONG res = RegQueryValueEx(hKey, L"UseSystemSeparators", NULL, &lpType, (LPBYTE)iVal, &size);

最佳答案

如果我没理解错的话,你需要变量的地址,然后将该地址转换为LPBYTE .

然后你需要使用寻址运算符&在变量上获取指向变量的指针,并转换该指针:

foo(reinterpret_cast<LPBYTE>(&y));

如果变量实际上包含一个地址,那么您首先必须非常小心,因为不能保证 int可以保存内存地址(即指针)。以 64 位系统为例,其中指针是 64 位,但是 int通常仍然是 32 位类型。

改用 intptr_t保证足够大以容纳 int或指针。

然后你应该做例如

intptr_t y = ...;

foo(reinterpret_cast<LPBYTE>(y));

<罢工>

关于c++ - 如何将 int 转换为 LPBYTE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29093433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com