看这段代码
long long dddd = (*lsIterator)->m_status.m_nIn;
long long cccc = (*lsIterator)->m_status.m_nInTimes;
tmpStr.Format(L"%d/%d/%d", dddd, cccc, 45);
监视窗口显示啥:
dddd 27992 __int64
cccc 8 __int64
+ tmpStr "27992/0/8" ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
很奇怪,似乎与stl的list有关系,因为如果用
int fuck = 56;
tmpStr.Format(L"%d/%d/%d", 44, fuck, 45);
是没问题的,
是不是我的list用错了,一旦format参数使用到iterator相关的参数就不对了?
list<CBaseSocket*>::iterator lsIterator;
for (lsIterator = m_sConnectSockets.begin(); 
lsIterator != m_sConnectSockets.end(); 
lsIterator++)
{
long long dddd = (*lsIterator)->m_status.m_nIn;
long long cccc = (*lsIterator)->m_status.m_nInTimes;
tmpStr.Format(L"%d/%d/%d", dddd, cccc, 45);
}