To yongdu:
强制转换(int)没报错,但所取得的数值不对

解决方案 »

  1.   

    number_Get不是一个LPBYTE的指针类型变量吗?你要将一个指针变量转换成int?
      

  2.   

    要看清楚  LPBYTE 是个指针,其定义为;
              typedef BYTE far            *LPBYTE;number_Get是数组,也是个指针,所以呢,我觉得你还应该再看一看有关指针的内容,至于转换,应该是 (int)number_get[i],即只能对数组中的某个成员进行转换。
      

  3.   

    我原来用如下代码进行转换:
    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 *',不知什么原因.是否还有其他的方法.
      

  4.   

    你为什么要把numer_Get转换为int类型呢?
      

  5.   

    因为我要从注册表里取值,我用RegQueryValueEx取的值保存到number_Get中,然后再转换成int
      

  6.   

    你取加的值类型若为  REG_SZ  则可定义number_Get为 char number_Get[].
    然后可用num=atoi(number_Get);
    调用RegQueryValueEx(?,?,NULL,&dwDataType,(LPBYTE)number_Get,sizeof(number_Get);
    其中DWORD dwDataType=REG_SZ
      

  7.   

    atoi' : cannot convert parameter 1 from 'const unsigned short *' to 'const char *'
    因为你是Unicode类型工程
      

  8.   

    用(ULONG)或DWORD的强制转换是没有问题的。
    请注意一点,你拿到的值是10进制的,你在调试时看到的地址是16进制的。