我正在分析应用程序崩溃,并且怀疑我当前的方法(下面粘贴的代码中的方法1)可能导致崩溃,但不确定。 我已经在代码下方粘贴了一些参考。内部崩溃无法复制,也没有转储。
#define SAMPLE_STRING L"Hello world"
class CFoo
{
std::map <CString, CString> m_map;
public:
void SetMyString(__in const CString& csParam)
{
CString csKey(L"Mykey");
m_map[csKey] = csParam;
}
};
int main()
{
//approach 1
CFoo obj;
obj.SetMyString(SAMPLE_STRING);
//approach 2
CFoo obj;
CString csMystr(SAMPLE_STRING);
obj.SetMyString(csMystr);
}
以下是我的问题:
答案 0 :(得分:0)
正如每个人所说,问题的根源在不同的地方。感谢大家的快速响应,问题得以重现,并帮助修复了崩溃问题。问题的根源是,正在尝试将包含英文和日文字符的文件读取到CStringA变量中,同时尝试降低它的崩溃率。从字面上看,日语字符在CStringA中转换为垃圾。 CString makelower是问题的根源。