好友
阅读权限30
听众
最后登录1970-1-1
|
本帖最后由 dmxayjn 于 2020-7-8 23:10 编辑
void CDbManager::SendDisguiseUserTime( CQuery* pQuery, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus )
{
char szExec[64];
sprintf(szExec, "uspGetTempDisguiseTimeInfo");
if (pQuery->Exec(szExec))
{
int cb = 0;
std::list<std::pair<DWORD, //playerID
DWORD> > info;
while (pQuery->Fetch())
{
info.push_back(std::make_pair(pQuery->GetInt("playerID"), pQuery->GetInt64("time")));
}
BEFORESENDDUAL( ar, PACKETTYPE_QUERY_DISGUISE_INFO, DPID_UNKNOWN, DPID_UNKNOWN );
ar << info.size();
for(auto iter = info.begin(); iter != info.end(); ++iter) //这里报错error C2440: “初始化” : 无法从“std::list<_Ty>::iterator”转换为“int” with [ _Ty=std::pair ] 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
{ //error C2678: 二进制“!=” : 没有找到接受“int”类型的左操作数的运算符(或没有可接受的转换)
ar << iter->first; // error C2227: “->first”的左侧必须指向类/结构/联合 类型是“int”
ar << iter->second; // error C2227: “->second”的左侧必须指向类/结构/联合
}
SEND( ar, CDPTrans::GetInstance(), DPID_ALLPLAYERS );
}
if(lpDbOverlappedPlus)
FreeRequest( lpDbOverlappedPlus );
}
这个代码是我从 vs2010项目上复制的,我想移植到 vs2003项目里,
现在发现 vs2003 不支持 auto, auto 需要改成什么类型。
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|