如该示例,str.Format(L"相似度:%f\t视频名称:%s\t起始位置:%d\r\n",tmp[0].dblSimilarity,tmp[0].szFileName,tmp[0].nFrame);

szFileName是一个char[260]字符数组如下图

str.format输出乱码-LMLPHP

结果str字符串格式化后变成这样

str.format输出乱码-LMLPHP

不要这个L转成宽字符的话, 又会报错

应该就是szFileName再转L的时候出的错,于是想到把这一段字符串和str拼接起来

 CString str;
str.Format(L"相似度:%f\t起始位置:%d\r\n",tmp[].dblSimilarity,tmp[].nFrame);
str+=tmp[].szFileName;

于是不但能通过编译,断点查看后,str为

str.format输出乱码-LMLPHP

- str "相似度:0.318576 起始位置:149
c:\Users\Kira\Desktop\VideoProcess2017年11月20\VideoProcess\VideoProcess\TempVideo\10.mp4"ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >

成功!

图片显示好像被压缩了。囧

05-17 03:52