PostMessage CString

场景:用postmessage传递CString信息的有关问题

用postmessage传递CString信息的问题
本帖最后由 jfhufhf 于 2014-10-19 20:17:20 编辑
在程序的一个线程中为了在指定的窗口添加文字内容,采用postmeaasge来传递信息给窗口。
线程通过调用p_WriteLog函数来添加文字信息,现在消息已经可以正在触发,可是
m_ListBox.AddString显示出来的内容是乱码。求解决,谢谢。

有如下的定义

ON_MESSAGE(WM_USER_WRITE_LOG, &Cnew_oneDlg::p_writeLog)


void p_WriteLog(HWND hWnd,CString text){
CString *stra = new CString(text);
PostMessage(hWnd, WM_USER_WRITE_LOG, 0, (LPARAM)stra);
}

LONG Cnew_oneDlg::p_writeLog(WPARAM wParam, LPARAM lParam){
CString* tmp = (CString*)lParam;
delete (CString*)lParam;

int sel = m_ListBox.GetCurSel();
m_ListBox.SetCurSel(sel + 1);
m_ListBox.AddString(CString(*tmp));

return 0;
}

------解决思路----------------------
    CString* tmp = (CString*)lParam;
    delete (CString*)lParam;
哪能这样呢?你delete了,当然会出问题了
在return 0前delete