关于一个函数有关问题 老邓有空一定要进
关于一个函数问题 老邓有空一定要进啊
qp::StringA Global::UnicodeToAnsi(const wchar_t* buf)
{
int len = ::WideCharToMultiByte(CP_ACP, 0, buf, -1, NULL, 0, NULL, NULL);
if (len == 0) return "";
std::vector<char> utf8(len);
::WideCharToMultiByte(CP_ACP, 0, buf, -1, &utf8[0], len, NULL, NULL);
return &utf8[0];
}
这是我在其他帖子里用的 老邓的一个函数, 有人是说 return &utf8[0],这里返回的是一个 栈上的引用,说会出问题
有的说 如果不同模块调用 不同的运行时库也会出问题,到底对不对,到底有没有问题,求指教
------解决方案--------------------
连引用和取址运算符都分辨不清的人,先让他重新回炉再出来溜达……
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
都在等老邓
------解决方案--------------------
与
return qp::StringA(&utf8[0]);
等效.
------解决方案--------------------
不要把偶的头像跟那个“苦B青年”样的放在一起,免得被人瞧不起……
------解决方案--------------------
中间放了挡板
qp::StringA Global::UnicodeToAnsi(const wchar_t* buf)
{
int len = ::WideCharToMultiByte(CP_ACP, 0, buf, -1, NULL, 0, NULL, NULL);
if (len == 0) return "";
std::vector<char> utf8(len);
::WideCharToMultiByte(CP_ACP, 0, buf, -1, &utf8[0], len, NULL, NULL);
return &utf8[0];
}
这是我在其他帖子里用的 老邓的一个函数, 有人是说 return &utf8[0],这里返回的是一个 栈上的引用,说会出问题
有的说 如果不同模块调用 不同的运行时库也会出问题,到底对不对,到底有没有问题,求指教
------解决方案--------------------
连引用和取址运算符都分辨不清的人,先让他重新回炉再出来溜达……
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
都在等老邓
------解决方案--------------------
与
return qp::StringA(&utf8[0]);
等效.
------解决方案--------------------
不要把偶的头像跟那个“苦B青年”样的放在一起,免得被人瞧不起……
------解决方案--------------------
中间放了挡板