Re: pomogite please CWinThread VS6 -> VS2005
От: Кодт Россия  
Дата: 22.09.06 17:53
Оценка:
Здравствуйте, sally, Вы писали:

S>est' class ClassName : public CWinThread

S>BEGIN_MESSAGE_MAP(ClassName , CWinThread)
S>      ON_THREAD_MESSAGE(WM_DO_IT, OnDoIt) 
S>END_MESSAGE_MAP()

S>na VS6 idet kak po maslu
S>na VS2005 vidaet oshibku
S>error C2440: 'static_cast' : cannot convert from 'LRESULT (__thiscall ClassName ::* )(WPARAM,LPARAM)' to 'void (__thiscall CWinThread::* )(WPARAM,LPARAM)'

Очевидно, что надо объявить (и определить, естественно) void OnDoIt(WPARAM,LPARAM).

Под рукой нет VC6, поэтому не берусь сказать, почему там компилировалось.
То ли какие-то переосмысления MFC (мол, раньше надо было LRESULT, а теперь void),
то ли использовали reinterpret_cast,
то ли просто вызывали эту функцию, а не запоминали указатель...
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.