调试C++程序的时候报stcore.cpp 154行错
查看报错位置为CAFXString::Free函数,但CString非new的不需要手动delete,于是分析是由于别的原因导致。
代码为某个日志处理线程
char* pmsg = reinterpret_cast<char*>(msg.lParam);;
CString str(pmsg);
继续分析msg.lparam,msg.lparam为字符数组指针
BYTE* nlb = new BYTE[14];
BTD tpBTD;
for(int i=0; i<13; i++)
{
nlb[i] = convStr[i];
}
PostThreadMessage(m_nThreadVuID, WM_STATUS, tpBTD.DD, reinterpret_cast<LPARAM>(nlb));
分析可能是nlb没有结束符/0导致。
重新定义
BYTE* nlb = new BYTE[15];
BTD tpBTD;
for(int i=0; i<13; i++)
{
nlb[i] = convStr[i];
}
nlb[14] = 0;
PostThreadMessage(m_nThreadVuID, WM_STATUS, tpBTD.DD, reinterpret_cast<LPARAM>(nlb));
后续问题解决情况会继续更新