المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : MFC Passing a string from a thread then printing out in a edit box not working



C++ Programming
06-03-2011, 02:21 AM
void CFLUpdaterDlg::Print(CString s_Format, ...){ va_list args; va_start(args, s_Format); int BUFLEN = 1024; CString s_Out; TCHAR* t_Out = s_Out.GetBuffer(BUFLEN+1); _vsntprintf(t_Out, BUFLEN, s_Format, args); t_Out[BUFLEN] = 0; s_Out.ReleaseBuffer(); if (s_Out.GetLength() == BUFLEN) s_Out.Replace(_T("\r"), _T("")); s_Out.Replace(_T("\n"), _T("\r\n")); ms_Output += s_Out; m_Print.SetWindowText(ms_Output); return;}
void CFLUpdaterDlg::OnBnClickedStartserver(){ if(!serverstarted) { TCHAR PortNumber[260]; m_PortTxT.GetWindowTextA(PortNumber,260); m_Port = atoi(PortNumber); Print("Server Started on port %i\n",m_Port); serverstarted=true; AfxBeginThread( ServerEXE,(LPVOID)m_Port, THREAD_PRIORITY_NORMAL); } else { Print("Server Allready Running\n"); }}
UINT CFLUpdaterDlg::ServerEXE(LPVOID param){ CFLUpdaterDlg out; int host_port = (int)param; out.Print("port = %i\n",host_port); return 0;}
i seem to be geting memory overflows it prints out OnBnClickedStartserver info no problem but when i try to print from the thread instant overflow