对于UID,可能很多学生都会感到陌生,下面达内科技UID设计师来简单介绍一下UID。
UID是一组英文单词的缩写,不同的地方有不同的含义: unique identifier 惟一标识符; universal identifier 通用标识符; urine identification 尿鉴定; user identification 用户识别; user identifier 用户标识符; users of intravenous drugs 静脉注射药物使用者。在下面的程序中,我们可能会涉及到对UID的运用:
在程序里加日志跟踪,发现问题的根源是一个比较隐蔽的BUG。
TBuf<32> tmp;
tmp.AppendNum(KAppUid.iUid, EHex);
path.Append(tmp.Mid(8));
这段代码在 KAppUid 是 0xA0... 和 0x20... 的情况下执行结果是不一样的。
原因是AppendNum接受的参数是TUint64,传一个 TUint32 进去做类型转换,对 >=0x8000000 的数前面会用 ffffffff 补齐,得到的字符串长度是16。而 0x20... 这样的数,结果是8个字符。
修改为下面的代码解决问题:
tmp.Format(_L("%x"), KAppUid.iUid);
path.Append(tmp);文章来源于:深圳达内总部 转载请注明:http:www.ctarenasz.com
UID是一组英文单词的缩写,不同的地方有不同的含义: unique identifier 惟一标识符; universal identifier 通用标识符; urine identification 尿鉴定; user identification 用户识别; user identifier 用户标识符; users of intravenous drugs 静脉注射药物使用者。在下面的程序中,我们可能会涉及到对UID的运用:
在程序里加日志跟踪,发现问题的根源是一个比较隐蔽的BUG。
TBuf<32> tmp;
tmp.AppendNum(KAppUid.iUid, EHex);
path.Append(tmp.Mid(8));
这段代码在 KAppUid 是 0xA0... 和 0x20... 的情况下执行结果是不一样的。
原因是AppendNum接受的参数是TUint64,传一个 TUint32 进去做类型转换,对 >=0x8000000 的数前面会用 ffffffff 补齐,得到的字符串长度是16。而 0x20... 这样的数,结果是8个字符。
修改为下面的代码解决问题:
tmp.Format(_L("%x"), KAppUid.iUid);
path.Append(tmp);文章来源于:深圳达内总部 转载请注明:http:www.ctarenasz.com
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28800670/viewspace-759845/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28800670/viewspace-759845/