如何将LPBYTE型变量转换成int变量

jxt100 2001-04-28 02:14:00
如何将LPBYTE number_Get=new BYTE[10]中的number_Get转换成int
...全文
228 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fulaoxiao 2001-04-28
  • 打赏
  • 举报
回复
用(ULONG)或DWORD的强制转换是没有问题的。
请注意一点,你拿到的值是10进制的,你在调试时看到的地址是16进制的。
gongxy 2001-04-28
  • 打赏
  • 举报
回复
atoi' : cannot convert parameter 1 from 'const unsigned short *' to 'const char *'
因为你是Unicode类型工程
Dan_J 2001-04-28
  • 打赏
  • 举报
回复
你取加的值类型若为 REG_SZ 则可定义number_Get为 char number_Get[].
然后可用num=atoi(number_Get);
调用RegQueryValueEx(?,?,NULL,&dwDataType,(LPBYTE)number_Get,sizeof(number_Get);
其中DWORD dwDataType=REG_SZ

jxt100 2001-04-28
  • 打赏
  • 举报
回复
因为我要从注册表里取值,我用RegQueryValueEx取的值保存到number_Get中,然后再转换成int
Dan_J 2001-04-28
  • 打赏
  • 举报
回复
你为什么要把numer_Get转换为int类型呢?
jxt100 2001-04-28
  • 打赏
  • 举报
回复
我原来用如下代码进行转换:
int num;
CString str_number=CString(number_Get);
num=atoi(LPCTSTR(str_number));
能取得正确的值.但这段代码用在另一程序中却报错:
atoi' : cannot convert parameter 1 from 'const unsigned short *' to 'const char *',不知什么原因.是否还有其他的方法.
Dan_J 2001-04-28
  • 打赏
  • 举报
回复
要看清楚 LPBYTE 是个指针,其定义为;
typedef BYTE far *LPBYTE;

number_Get是数组,也是个指针,所以呢,我觉得你还应该再看一看有关指针的内容,

至于转换,应该是 (int)number_get[i],即只能对数组中的某个成员进行转换。
lazyeric 2001-04-28
  • 打赏
  • 举报
回复
number_Get不是一个LPBYTE的指针类型变量吗?你要将一个指针变量转换成int?
jxt100 2001-04-28
  • 打赏
  • 举报
回复
To yongdu:
强制转换(int)没报错,但所取得的数值不对
yongdu 2001-04-28
  • 打赏
  • 举报
回复
强制转换(int)不行吗?

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧