shark发布了新版本,陆续收到了>10份的崩溃日志,查看dmp文件,问题出在了s_suffix.MakeLower();(ATL::CString s_suffix;),百思不得其解,求助于google,有位老兄的解释如下,让我豁然开朗。
一个程序CString::MakeLower() 总是崩溃,开始以为是多线程问题,但是检查后全是局部变量,不存在跨线程
后来发现原来是:字符串中有二进制数据,也就是说字符串中有既不是中文也不是英文也不是标点符号的而且不为零的数据,来源于一段二进制数据。确保字符串中只有字符串,没有二进制数据就OK了
推荐使用API函数CharLower