temp.Format(L"0%s",temp);自己不能format自己,MSDN上有说明:
The call will fail if the string object itself is offered as a parameter to Format. For example, the following code will cause unpredictable results:
CAtlString str = "Some Data";
str.Format("%s%d", str, 123);
The call will fail if the string object itself is offered as a parameter to Format. For example, the following code will cause unpredictable results:
CAtlString str = "Some Data";
str.Format("%s%d", str, 123);
// Attention: str is also used in the parameter list.
格式化字符串用%05x呗,如果是总共5位,不足补0的话。
如果BILLCODE_LENGTH是固定值就好办,例如为8
int val = 123;
CString str;
str.Format("%08d",val);
//这时str="00000123";
str.Format("0x%08X",val);
//这时str="0x0000007B";
CString::Format先把数字位数填满0,%08d等,不足8为就补0