CString str;
str.Format("%ld",-2147483648);
J:\workworkwork\Osiris\RawDate.cpp(1555) : 
warning C4146: unary minus operator applied to unsigned type, result still unsigned

解决方案 »

  1.   

    你这-2147483648数太小了,超出了long int的最小值,你可以使用__int64
      

  2.   

    long long int, signed long int –2,147,483,648 to 2,147,483,647他的范围,
    我的本意是一个文本框,关联一个CString str,然后str.Format("%ld",-2147483648);,
    显示可挑数字的最小值,然后UpdateData(),atol得到此值.只是不解%ld显示long int 最小值为何警告呢?
      

  3.   

    –2,147,483,648 是 FFFFFFFF80000000 其中FFFFFFFF是符号位,80000000是数值,由此4个字节容纳不下,警告即为此
      

  4.   

    可以将数字转换为char类型,再转成cstring,有这样的函数