版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33249383/article/details/84998071
在做存储服务StoreProxy项目时,因为把位置(A)处的代码放到了位置(B),导致保存的图片数据有误,原因是忽略叻局部变量的作用域,在if语句中声明的局部变量res只在{}内有效。
函数xxxxx(xxx,xxxx)
{
(A)CHttpCurl::response res = {}; //注意作用域
if(xxxxx)
{
(B)
......
GSString url = (char*)pData;
url = url.substr(0, url.find_last_of('g')+1);
//根据url请求图片数据
res = CHttpCurl::GetInstance()->get(url);
if (200 != res.ncode)
{
GSStrUtil::Format(strLog, "获取图片失败 :%s", strInfo.c_str());
Log(strLog.c_str(), LOGGER_LEVEL_ERROR);
}
//获取返回的图片数据和长度
pData = (char*)res.strBody.c_str();
nDataLen = res.strBody.length();
.......
}
........
使用了res的保存图片的相关操作
......
}