Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Передача данных в поток


Автор: Sheff 9.10.2002, 05:35
Люди, есть код:
Код

struct SMS
{
CString name,number,text;
CWnd *window;
};

void SendSMS(PVOID smsdata)
{
SMS *sms=(SMS*)smsdata;
MessageBox(NULL,sms->text.GetBuffer(0),"p",MB_OK);
}

BOOL SendMsg(CString name, CString number, CString text, CWnd *Window)
{
SMS sms;
sms.name=name;
sms.number=number;
sms.text=text;
sms.window=Window;
_beginthread(SendSMS,0,(PVOID)&sms);
return TRUE;
}

Сначала вызывается SendMsg, туда передаётся 4 параметра, как видно, потом заполняется структура SMS и вызывается поток, куда передаётся адрес этой структуры в качестве параметра.
Функция SendSMS принимает данные и пытается вывести MsgBox с полем text структуры SMS, но на этом моменте возникает критическая ошибка и прога вылетает. В чём дело, почему структура не передалась потоку ?

Автор: Fantasist 9.10.2002, 05:46
Ай-ай-ай. Кто же в поток адрес временной перемены передает?

Автор: Sheff 9.10.2002, 22:58
Да, ты прав, вот что значит невнимательность :)

Автор: Fantasist 10.10.2002, 01:47
Цитата(Sheff @ 09.10.2002, 15:58)
Да, ты прав, вот что значит невнимательность :)

:)  Ага. Бывают такие наколки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)