Исправлено форматирование текста. — SchweinDeBurg
est' class ClassName : public CWinThread
BEGIN_MESSAGE_MAP(ClassName , CWinThread)
ON_THREAD_MESSAGE(WM_DO_IT, OnDoIt)
END_MESSAGE_MAP()
na VS6 idet kak po maslu
na VS2005 vidaet oshibku
error C2440: 'static_cast' : cannot convert from 'LRESULT (__thiscall ClassName ::* )(WPARAM,LPARAM)' to 'void (__thiscall CWinThread::* )(WPARAM,LPARAM)'
Budu priznatelen esli kto vtolkuet kak razgresti
Spasibo.
22.09.06 21:46: Перенесено модератором из 'Пользовательский интерфейс: проектирование, usability' — Кодт
Здравствуйте, 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>>
Между прочим, Коля, когда переносил — мог бы заодно и форматирование поправить!

[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
Удалено избыточное цитирование. — SchweinDeBurg
Здравствуйте, Кодт, Вы писали:
К>Очевидно, что надо объявить (и определить, естественно) void OnDoIt(WPARAM,LPARAM).
Nu ya baran konkretnuy.
Vse rabotaet.
Cpacibo.
Убедительная просьба — не нарушать впредь п.7
Обязательных правил и пользоваться услугами сайтов-переводчиков:
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]