Войти

Показать полную графическую версию : Потоки в VC++6.0


Guest
20-02-2004, 01:44
Захотелось мне однажды создать поток при нажатии бутона  Send. Вот отрывок кода. "а"  имеет тип LPVOID

void CLabor1Dlg::OnSendButton()
{int temp;

CWinThread* pThread1=AfxBeginThread( SendMyMessage(a), GetSafeHwnd() ,THREAD_PRIORITY_NORMAL);

}

UINT CLabor1Dlg::SendMyMessage(LPVOID pParam)
{

if!(channel.Open("data",CFile::modeWrite, &e ))
                                          AfxMessageBox("Can't open channel", MB_OK);

return 0;
}

А оно мне вот что пишет error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int'
Что я уже ни делал ничего не помпгает. Может ви поможете юному "зеленому" програмеру

Crew
20-02-2004, 05:06
Я особенно не вдавался каким другим способом можно сделать, но у меня получилось так

UINT ThreadProc(LPVOID param)
{
* * * * CFlashDlg *flashdlg=(CFlashDlg*)param;
* * * * try
* * * *{
* * * * * * * *//.....................
* * * * }
* * * * catch(...)
* * * *{
* * * * * * * //.....
* * * *}
* * * * flashdlg->SendMessage(WM_THREADENDED);
* * * * return 0;
}
void CSearch::PrepareRunThread()
{
ASSERT(m_pFlashDlg);
AfxBeginThread(ThreadProc,m_pFlashDlg);
}


основное отличие, я так понимаю, способ описания UINT ThreadProc(LPVOID param). кажется она глобальной должна быть




© OSzone.net 2001-2012