无符号长型整数是32位的,unsigned long
字符型是8位的,char,unsighed char
长型也是32位的,long
所以转到字符型可能丢失数据而转到long型当然没有问题。

解决方案 »

  1.   

    不要硬转
    这样不会报错:
    unsigned long a;
    char b;
    b = a&0x000000ff;
      

  2.   

    有一点我没有写清楚,是long -> CString 没有警告提示,DWORD-> CString有提示。
      

  3.   

    long diskidtemp1=12345;//如果这用DWORD有警告提示,我想应该有的话都有没有也都没有怎么会LONG 没有而DWORD会有警告提示?
    CString diskidtemp2;
    while (diskidtemp1>0)//把整型的转换成字符型
    {
    diskidtemp2+=diskidtemp1%10+48;
    diskidtemp1=diskidtemp1/10;
    }