mfc里面的CFile文件获取到文件的大小,使用的是:file.GetLength(),返回的类型为ULONGLONG,这个对于大于4G的文件来说,才是足够的.
我原以为用一个long型就可以保存下这个大小,结果错的离谱.
long型在win32平台下,就是32位的,跟int其实就是一回事.唉,害苦我了,不知道为什么一直以为long是64的.
所以vc里面写64位的int都是这样定义的 _int64
但是一般使用的时候,类型清楚就直接使用ULONGLONG这样的自定义就很好用了.
要printf出这样的类型,是不能用%d来表示的,论坛上竟然还有人误解大家.
要这样写:
ULONGLONG filetotalsize=5912341234;
printf("size=%I64u",filetotalsize);
否则出来的结果只会是%d代表的最大值.
将字符串转换为ULONGLONG类型,是使用
char strbuff[32]="4812341234";
ULONGLONG tt=_atoi64(strbuff);
这样的代码.
有的地方说用atoll,但是没有这个函数啊,说要什么gg标准,我是不清楚了.